Limitar os resultados no preenchimento automático de UI do jQuery

Estou usando o preenchimento automático de UI do jQuery.

$("#task").autocomplete({ max:10, minLength:3, source: myarray }); 

O parâmetro max não funciona e ainda recebo mais de 10 resultados. Estou esquecendo de algo?

    Aqui está a documentação apropriada para o widget jQueryUI . Não há um parâmetro interno para limitar os resultados máximos, 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 function ao parâmetro de source e, em seguida, chamar slice na matriz filtrada.

    Aqui está um exemplo de trabalho: http://jsfiddle.net/andrewwhitaker/vqwBP/

    Você pode definir a opção minlength para algum valor grande ou você 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;} 

    Note que a única diferença é “max-height”. isso permitirá que o widget seja redimensionado para uma altura menor, mas não mais que 200px

    Adicionando a resposta de Andrew , você pode até introduzir uma propriedade maxResults e usá-lo 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!

    aqui está o que eu usei

     .ui-autocomplete { max-height: 200px; overflow-y: auto; overflow-x: hidden;} 

    O estouro automático, portanto, a barra de rolagem não será mostrada quando não for.

    Se os resultados vierem de uma consulta mysql, é mais eficiente limitar diretamente o resultado do mysql:

     select [...] from [...] order by [...] limit 0,10 

    onde 10 é o número máximo de linhas que você deseja

    Plugin: jquery-ui-autocomplete-scroll com scroller e limite de resultados são lindos

     $('#task').autocomplete({ maxShowItems: 5, source: myarray }); 

    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; } 

    Eu fiz isso da seguinte maneira:

     success: function (result) { response($.map(result.d.slice(0,10), function (item) { return { // Mapping to Required columns (Employee Name and Employee No) label: item.EmployeeName, value: item.EmployeeNo } } )); 

    O jQuery permite que você altere as configurações padrão quando estiver anexando o preenchimento automático a uma 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 } }); 

    Não há parâmetro max.

    http://docs.jquery.com/UI/Autocomplete

    Eu tentei todas as soluções acima, mas a minha só funcionou desta maneira:

     success: function (data) { response($.map(data.slice (0,10), function(item) { return { value: item.nome }; })); }, 

    No meu caso isso funciona bem:

     source:function(request, response){ var numSumResult = 0; response( $.map(tblData, function(rowData) { if (numSumResult < 10) { numSumResult ++; return { label: rowData.label, value: rowData.value, } } }) ); },