[jquery-ui] Limita i risultati nel completamento automatico dell'interfaccia utente jQuery


Answers

Puoi impostare l'opzione minlength su qualche valore grande o puoi farlo con css come questo,

.ui-autocomplete { height: 200px; overflow-y: scroll; overflow-x: hidden;}
Question

Sto usando il completamento automatico dell'interfaccia utente jQuery.

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

Il parametro max non funziona e ottengo ancora più di 10 risultati. Mi sto perdendo qualcosa?




L'ho fatto nel modo seguente:

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



Aggiungendo alla risposta di Andrew , puoi anche introdurre una proprietà maxResults e usarla in questo modo:

$("#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/

Ciò dovrebbe aiutare la leggibilità e la manutenibilità del codice!




Se i risultati provengono da una query mysql, è più efficiente limitare direttamente il risultato mysql:

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

dove 10 è il numero massimo di righe che si desidera




Potrei risolvere questo problema aggiungendo il seguente contenuto al mio file CSS:

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



Ho provato tutte le soluzioni sopra, ma la mia ha funzionato solo in questo modo:

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





Related