I am using jQuery UI Autocomplete.
$("#task").autocomplete({
max:10,
minLength:3,
source: myarray
});
The max parameter doesn't work and I still get more than 10 results. Am I missing something?
Here is the proper documentation for the jQueryUI widget. There isn't a built-in parameter for limiting max results, but you can accomplish it easily:
$("#auto").autocomplete({
source: function(request, response) {
var results = $.ui.autocomplete.filter(myarray, request.term);
response(results.slice(0, 10));
}
});
You can supply a function to the source
parameter and then call slice
on the filtered array.
Here's a working example: http://jsfiddle.net/andrewwhitaker/vqwBP/
Adding to Andrew's answer, you can even introduce a maxResults
property and use it this way:
$("#auto").autocomplete({
maxResults: 10,
source: function(request, response) {
var results = $.ui.autocomplete.filter(src, request.term);
response(results.slice(0, this.options.maxResults));
}
});
jsFiddle: http://jsfiddle.net/vqwBP/877/
This should help code readability and maintainability!
jQuery allows you to change the default settings when you are attaching autocomplete to an input:
$('#autocomplete-form').autocomplete({
maxHeight: 200, //you could easily change this maxHeight value
lookup: array, //the array that has all of the autocomplete items
onSelect: function(clicked_item){
//whatever that has to be done when clicked on the item
}
});
Plugin: jquery-ui-autocomplete-scroll with scroller and limit results are beautiful
$('#task').autocomplete({
maxShowItems: 5,
source: myarray
});
max
in autocomplete – Jayantha Lal Sirisena