Table Of Contents

Previous topic

Tabbed Page

Next topic

Javascript Utilities

This Page

Autosuggest

Adapted from: Timothy Groves - http://www.brandspankingnew.net

cur_autosug
Live Autosuggest object
hide_autosuggest()
Hide the Live Autosuggest (if exists)
class AutoSuggest(id, param)
Create a new autosuggest object

Overriding the default call

  • To override the default server call, override the method doAjaxRequest
  • To override updation in the INPUT element, override the method custom_select

Example

Example where email id is to be retrieved:

// ---- add auto suggest ----
var opts = { script: '', json: true, maxresults: 10 };

var as = new AutoSuggest(d.widgets['To'], opts);
as.custom_select = function(txt, sel) {
  // ---- add to the last comma ----
  var r = '';
  var tl = txt.split(',');
  for(var i=0;i<tl.length-1;i++) r=r+tl[i]+',';
  r = r+(r?' ':'')+sel;
  if(r[r.length-1]==NEWLINE) r=substr(0,r.length-1);
  return r;
}

// ---- override server call ----
as.doAjaxRequest = function(txt) {
  var pointer = as; var q = '';

  // ---- get last few letters typed ----
  var last_txt = txt.split(',');
  last_txt = last_txt[last_txt.length-1];

  // ---- show options ----
  var call_back = function(r,rt) {
    as.aSug = [];
    if(!r.cl) return;
    for (var i=0;i<r.cl.length;i++) {
      as.aSug.push({'id':r.cl[i], 'value':r.cl[i], 'info':''});
    }
    as.createList(as.aSug);
  }
  $c('get_contact_list',{'select':_e.email_as_field, 'from':_e.email_as_dt, 'where':_e.email_as_in, 'txt':(last_txt ? strip(last_txt) : '%')},call_back);
  return;
}