2012-12-18 22:07:02 +00:00
#Ajax AutoComplete for jQuery
Ajax Autocomplete for jQuery allows you to easily create
autocomplete/autosuggest boxes for text input fields.
2012-12-19 22:17:21 +00:00
Has no dependencies other than jQuery.
The standard jquery.autocomplete.js file is around 2.7KB when minified via Closure Compiler and gzipped.
2012-12-19 18:15:54 +00:00
##API
* `$(selector).autocomplete(options);`
* Sets up autocomplete for input field(s).
* `options` : An object literal which defines the settings to use for the autocomplete plugin.
* `serviceUrl` : Server side URL that provides results for suggestions. Optional if local lookup data is provided.
* `lookup` : Lookup array for the suggestions. It may be array of strings or `suggestion` object literals.
* `suggestion` : An object literal with the following format: `{ value: 'string', data: any }` .
2013-01-15 17:53:05 +00:00
* `lookupFilter` : `function (suggestion, query, queryLowerCase) {}` filter function for local lookups. By default it does partial string match (case insensitive).
2012-12-19 18:15:54 +00:00
* `onSelect` : `function (suggestion) {}` Callback function invoked when user selects suggestion
from the list. `this` inside callback refers to input HtmlElement.
* `minChars` : Minimum number of characters required to trigger autosuggest. Default: `1` .
* `maxHeight` : Maximum height of the suggestions container in pixels. Default: `300` .
* `deferRequestBy` : Number of miliseconds to defer ajax request. Default: `0` .
* `width` : Suggestions container width in pixels, e.g.: 300. Default: `auto` , takes input field width.
* `params` : Additional parameters to pass with the request, optional.
* `formatResult` : `function (suggestion, currentValue) {}` custom function to
format suggestion entry inside suggestions container, optional.
* `delimiter` : String or RegExp, that splits input value and takes last part to as query for suggestions.
Useful when for example you need to fill list of coma separated values.
* `zIndex` : 'z-index' for suggestions container. Default: `9999` .
* `type` : Ajax request type to get suggestions. Default: `GET` .
* `noCache` : Boolean value indicating whether to cache suggestion results. Default `true` .
2012-12-19 21:53:34 +00:00
* `onSearchStart` : `function (query) {}` called before ajax request. `this` is bound to input element.
* `onSearchComplete` : `function (query) {}` called after ajax response is processed. `this` is bound to input element.
2012-12-18 22:07:02 +00:00
##Usage
Html:
< input type = "text" name = "country" id = "autocomplete" / >
Ajax lookup:
$('#autocomplete').autocomplete({
serviceUrl: '/autocomplete/countries',
onSelect: function (suggestion) {
2012-12-19 00:03:45 +00:00
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
2012-12-18 22:07:02 +00:00
}
});
Local lookup (no ajax):
2012-12-19 00:03:45 +00:00
var countries = [
{ value: 'Andorra', data: 'AD' },
// ...
{ value: 'Zimbabwe', data: 'ZZ' }
];
2012-12-18 22:07:02 +00:00
$('#autocomplete').autocomplete({
lookup: countries,
onSelect: function (suggestion) {
2012-12-19 00:03:45 +00:00
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
2012-12-18 22:07:02 +00:00
}
});
2012-12-19 00:03:45 +00:00
##Styling
Generated HTML markup for suggestions is displayed bellow. You may style it any way you'd like.
2012-12-19 21:53:34 +00:00
< div class = "autocomplete-suggestions" >
2012-12-19 00:03:45 +00:00
< div class = "autocomplete-suggestion autocomplete-selected" > ...< / div >
< div class = "autocomplete-suggestion" > ...< / div >
< div class = "autocomplete-suggestion" > ...< / div >
< / div >
2012-12-19 21:53:34 +00:00
Style sample:
.autocomplete-suggestions { border: 1px solid #999 ; background: #FFF ; overflow: auto; }
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
.autocomplete-selected { background: #F0F0F0 ; }
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF ; }
2012-12-18 22:07:02 +00:00
##Response Format
Response from the server must be JSON formatted following JavaScript object:
{
query: "Unit",
suggestions: [
{ value: "United Arab Emirates", data: "AE" },
{ value: "United Kingdom", data: "UK" },
{ value: "United States", data: "US" }
]
}
2012-12-19 21:53:34 +00:00
Data can be any value or object. Data object is passed to formatResults function
and onSelect callback. Alternatively, if there is no data you can
supply just a string array for suggestions:
2012-12-18 22:07:02 +00:00
{
query: "Unit",
suggestions: ["United Arab Emirates", "United Kingdom", "United States"]
}
2012-12-19 21:53:34 +00:00
Important: query value must match original value in the input
field, otherwise suggestions will not be displayed.
2012-12-18 22:07:02 +00:00
##License
Ajax Autocomplete for jQuery is freely distributable under the
2012-12-19 21:58:30 +00:00
terms of an MIT-style [license ](https://github.com/devbridge/jQuery-Autocomplete/blob/master/dist/license.txt ).
2012-12-18 22:07:02 +00:00
Copyright notice and permission notice shall be included in all
copies or substantial portions of the Software.
##Authors
Tomas Kirda / [@tkirda ](https://twitter.com/tkirda )