Respostas:
Aqui está a documentação adequada para o widget jQueryUI . Não há um parâmetro interno para limitar o máximo de resultados, mas você pode realizá-lo facilmente:
$("#auto").autocomplete({
source: function(request, response) {
var results = $.ui.autocomplete.filter(myarray, request.term);
response(results.slice(0, 10));
}
});
Você pode fornecer uma função ao source
parâmetro e, em seguida, chamar slice
a matriz filtrada.
Aqui está um exemplo de trabalho: http://jsfiddle.net/andrewwhitaker/vqwBP/
Você pode definir a minlength
opção para algum valor grande ou pode fazê-lo por css como este,
.ui-autocomplete { height: 200px; overflow-y: scroll; overflow-x: hidden;}
O mesmo que "Jayantha" disse que usar o CSS seria a abordagem mais fácil, mas isso pode ser melhor,
.ui-autocomplete { max-height: 200px; overflow-y: scroll; overflow-x: hidden;}
Observe que a única diferença é "altura máxima". isso permitirá que o widget seja redimensionado para uma altura menor, mas não superior a 200 px
Adicionando a resposta de Andrew , você pode até introduzir uma maxResults
propriedade e usá-la desta maneira:
$("#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/
Isso deve ajudar na legibilidade e manutenção do código!
Eu poderia resolver esse problema adicionando o seguinte conteúdo ao meu arquivo CSS:
.ui-autocomplete {
max-height: 200px;
overflow-y: auto;
overflow-x: hidden;
}
Se os resultados vierem de uma consulta mysql, é mais eficiente limitar diretamente o resultado mysql:
select [...] from [...] order by [...] limit 0,10
onde 10 é o número máximo de linhas que você deseja
O jQuery permite alterar as configurações padrão quando você está anexando o preenchimento automático a uma entrada:
$('#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 com scroller e limitar os resultados são bonitos
$('#task').autocomplete({
maxShowItems: 5,
source: myarray
});
Não há parâmetro máximo.
max
no preenchimento automático