Réponses:
Voici la documentation appropriée pour le widget jQueryUI . Il n'y a pas de paramètre intégré pour limiter les résultats maximum, mais vous pouvez l'accomplir facilement:
$("#auto").autocomplete({
source: function(request, response) {
var results = $.ui.autocomplete.filter(myarray, request.term);
response(results.slice(0, 10));
}
});
Vous pouvez fournir une fonction au source
paramètre puis appeler slice
le tableau filtré.
Voici un exemple de travail: http://jsfiddle.net/andrewwhitaker/vqwBP/
Vous pouvez définir l' minlength
option sur une grande valeur ou vous pouvez le faire par css comme ceci,
.ui-autocomplete { height: 200px; overflow-y: scroll; overflow-x: hidden;}
Idem que "Jayantha" a dit que l'utilisation de css serait l'approche la plus simple, mais cela pourrait être mieux,
.ui-autocomplete { max-height: 200px; overflow-y: scroll; overflow-x: hidden;}
Notez que la seule différence est "max-height". cela permettra au widget de se redimensionner à une hauteur plus petite mais pas plus de 200 px
En plus de la réponse d' Andrew , vous pouvez même introduire une maxResults
propriété et l'utiliser de cette façon:
$("#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/
Cela devrait améliorer la lisibilité et la maintenabilité du code!
Je pourrais résoudre ce problème en ajoutant le contenu suivant à mon fichier CSS:
.ui-autocomplete {
max-height: 200px;
overflow-y: auto;
overflow-x: hidden;
}
Si les résultats proviennent d'une requête mysql, il est plus efficace de limiter directement le résultat mysql:
select [...] from [...] order by [...] limit 0,10
où 10 est le nombre maximum de lignes que vous voulez
jQuery vous permet de modifier les paramètres par défaut lorsque vous attachez la saisie semi-automatique à une entrée:
$('#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 avec scroller et limit les résultats sont magnifiques
$('#task').autocomplete({
maxShowItems: 5,
source: myarray
});
Il n'y a pas de paramètre max.
max
en saisie semi