Autocomplete like Google jQuery Plugin
JQuery Autocomplete plugin is a lightweight simple and easy in settings autocomplete like Google. Support Accent Folding
How to use autocomplete?
Insert code
add this code after </body> in your document.
<link type="text/css" rel="stylesheet" href="autocomplete.css"/>
<script src="jquery.min.js"></script>
<script src="autocomplete.js"></script>
Add data for autocomplete
var states = [
'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia',
'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa',
'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland',
'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi',
'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
'New Jersey', 'New Mexico', 'New York', 'North Carolina',
'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania',
'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee',
'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington',
'West Virginia', 'Wisconsin', 'Wyoming'
];
Init autocomplete plugin
$(function() {
$("input").autocomplete({
source:[states]
});
});
Autocomplete from remote data
Ajax
use ajax for getting data from server
<script>
$('#remote_input').autocomplete({
valueKey:'title',
source:[]
});
$('button#open').click(function(){
$('#remote_input').trigger('open');
$('#remote_input').focus();
});
</script>
or use custom function
$("#remote_input1").autocomplete({
source:[
function( q,add ){
$.getJSON("index.php?s="+encodeURIComponent(q),function(resp){
add(resp.data)
})
}
]
});
or combain static with dinamic variants
$('#remote_input2').autocomplete({source:[
{
url:"/component/jquery_plugins/?task=demodata&q=%QUERY%",
type:'remote'
},
["One","Two","Three"]
]});
You can use not only array, you can use object
$('#remote_input2').autocomplete({source:[{
data:[
{id:1, title:"alabama"},
{id:2, title:"alaska"},
{id:3, title:"georgia"},
{id:4, title:"texas"},
{id:6, title:"california"}
],
getTitle:function(item){
return item['title']
},
getValue:function(item){
return item['title']
},
}]}).on('selected.xdsoft',function(e,datum){
alert(datum.id);
alert(datum.title);
});
Full options list
Name | default | Ex. |
---|---|---|
minLength | 0 | {minLength:3} |
The minimum length of the input query, the plugin will handle it | ||
appendMethod | "concat" | {appendMethod:'replace'} |
How to update a set of data source. If all your search logic is on the
server side, you can disable the filter method and the valid and output data came from the
server as it is
|
||
accents | true | |
Enable accent Folding for Auto-Complete. When you will type «Àɬă» plugin will find «Alabama» item | ||
replaceAccentsForRemote | true | |
if accents==true and you are typing «Àɬă» plugin will find Alabama in local source. But if replaceAccentsForRemote==false then to remote server will be sent how is was written. | ||
valueKey | 'value' | |
The key for the identification field of the object, which contains the value | ||
titleKey | 'title' | {titleKey:'value'} |
The key for the identification field of the object, which contains the suggestion's label | ||
highlight | true | |
highlight the matching parts of words | ||
showHint | true | |
Show prompts behind the input field | ||
dropdownWidth | "100%" | {dropdownWidth:'auto'} |
Width for dropdown list | ||
dropdownStyle | {} | {dropdownStyle:{background:'red', color:'#fff', width:'500px'} |
Custom style for dropdown list | ||
itemStyle | {} | {itemStyle:{background:'red', color:'#fff', width:'500px'} |
Custom style for dropdown list element | ||
hintStyle | false | {hintStyle:{background:'red'} |
When plugin inits, style for "Hint" element takes from input element. All style's field copy to "Hint" element, but you can add custom style to "Hint". It will be combined with the copied style | ||
style | false | {style:{background:'red'} |
Plugin wraps input element in DIV box. For it is possible to set a custom style | ||
openOnFocus | true | |
Open dropdown list after focus in input | ||
closeOnBlur | true | |
Close dropdown list after blur from input | ||
autoselect | false | |
When element lost focus and nothing was selected take first element from suggestions | ||
limit | 20 | |
How many suggestions will be shown in drop-down list | ||
visibleLimit | 20 | |
How many suggestions will be visible in drop-down list. If limit>visibleLimit then will show scrollbar | ||
visibleHeight | 0 | |
Alternative for visibleLimit. It value simple reaplace visibleLimit*defaultHeightItem and will set max-height rule for dropdown list | ||
defaultHeightItem | 30 | |
When dropdownlist not visible then imposible to get height from suggestion's item, so it value will be apply in this case | ||
source | [] |
|
Source for suggestions, can be array or object or function. | ||
getValue | function | |
if in your data main value is not 'value' field, use it function
|
||
getTitle | function | |
When an element is rendered, the text is taken from the "Title", but you can override this
behavior
|
||
replace | function | |
Function compiles a URL address for AJAX request.
Default
|
||
render | function | |
Function item renderer. Default
|
||
preparse | function | |
Custom manipulate with data. Default
|
||
valid | function | |
Checks the suitability of a particular item, the current query. Default
|
||
filter | function | |
Filter source's data. Default
|
||
equal | function | |
Method to search equal values. Default
|
||
findRight | function | |
Method to search for an item whose value will be placed in the Hint. Default
|
||
Methods |
||
destroy | Use when you need destroy plugin
|
|
update | When the page size has been changed, or have been made some changes in DOM,
you will need to recalculate the position and size to wrap plug
|
|
options(mixed _options) | Set other options after init plugin
|
|
setSource(mixed source[,int id]) | Set other source for plugin's suggestions. If you did not specify "id" when
will by replace all sources list, but if you need replace only one source then you should
be put second argument
|
|
setSource([int id]) | Sometimes you need replace only one field for source or just learn what is
this option
|