How can you set a limit on the result from the jQuery autocomplete?
This is my code:
$.ajax({
url: \"/cache/search/SearchModels.x
Final Update
after understanding that in my previous answers i was limiting the whole xml result set and not the results of the autocomplete
As you have overridden the default _renderItem
method, you can override the default _renderMenu
.
$.ui.autocomplete.prototype._renderMenu = function( ul, items ) {
var self = this;
$.each( items, function( index, item ) {
if (index < 10) // here we define how many results to show
{self._renderItem( ul, item );}
});
}
answer is modified from this jQueryUI: how can I custom-format the Autocomplete plug-in results? so thanks go to @cheeso..
Original Answer
In you success
callback use $("SearchModel:lt(10)", xmlResponse).map(...
The :lt(10)
gets elements with an index of less than 10. So max 10 results will be returned..
(of course the number 10 could be anything you want)
Look at :lt()
selector at http://api.jquery.com/lt-selector/
update
Although i cannot understand why the first answer does not work, since the SearchModel
is a tag and we target that.. we can move the filtering in the map method..
success: function(xmlResponse) {
var data = $("SearchModel", xmlResponse).map(function(index) {
if (index<10)
{
return {
value: $("Name", this).text() + ", " + $("Description", this).text(),
id: $("No", this).text(),
name: $("Name", this).text(),
url: $("URL", this).text()
};
}
else
{ return null; }
}).get();
documentation of map()