Odpowiedzi:
Oto właściwa dokumentacja dla widżetu jQueryUI . Nie ma wbudowanego parametru ograniczającego maksymalne wyniki, ale możesz to łatwo osiągnąć:
$("#auto").autocomplete({
source: function(request, response) {
var results = $.ui.autocomplete.filter(myarray, request.term);
response(results.slice(0, 10));
}
});
Możesz podać funkcję do source
parametru, a następnie wywołaćslice
filtrowaną tablicę.
Oto działający przykład: http://jsfiddle.net/andrewwhitaker/vqwBP/
Możesz ustawić minlength
opcję na dużą wartość lub możesz to zrobić przez css w ten sposób,
.ui-autocomplete { height: 200px; overflow-y: scroll; overflow-x: hidden;}
To samo co „Jayantha” powiedział, że użycie css byłoby najłatwiejszym podejściem, ale może być lepsze,
.ui-autocomplete { max-height: 200px; overflow-y: scroll; overflow-x: hidden;}
Zauważ, że jedyną różnicą jest „maksymalna wysokość”. Umożliwi to zmianę rozmiaru widżetu na mniejszą wysokość, ale nie większą niż 200 pikseli
Dodając do odpowiedzi Andrzeja , można nawet wprowadzić do maxResults
własności i używać go w ten sposób:
$("#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/
To powinno pomóc w czytelności kodu i łatwości utrzymania!
Mogłem rozwiązać ten problem, dodając następującą zawartość do mojego pliku CSS:
.ui-autocomplete {
max-height: 200px;
overflow-y: auto;
overflow-x: hidden;
}
Jeśli wyniki pochodzą z zapytania mysql, bardziej efektywne jest bezpośrednie ograniczenie wyniku mysql:
select [...] from [...] order by [...] limit 0,10
gdzie 10 to maksymalna liczba żądanych wierszy
jQuery umożliwia zmianę domyślnych ustawień podczas dołączania autouzupełniania do danych wejściowych:
$('#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
}
});
Wtyczka: jquery-ui-autocomplete-scroll with scroller i limit wyniki są piękne
$('#task').autocomplete({
maxShowItems: 5,
source: myarray
});
Nie ma parametru max.
max
w autouzupełnianiu