Я использую автозаполнение jQuery UI.
$("#task").autocomplete({
max:10,
minLength:3,
source: myarray
});
Максимальный параметр не работает, и я получаю более 10 результатов. Я что-то пропустил?
Я использую автозаполнение jQuery UI.
$("#task").autocomplete({
max:10,
minLength:3,
source: myarray
});
Максимальный параметр не работает, и я получаю более 10 результатов. Я что-то пропустил?
Вот надлежащая документация для виджета jQueryUI. Для ограничения максимальных результатов нет встроенного параметра, но вы можете легко выполнить его:
$("#auto").autocomplete({
source: function(request, response) {
var results = $.ui.autocomplete.filter(myarray, request.term);
response(results.slice(0, 10));
}
});
Вы можете предоставить функцию параметру source
, а затем вызвать slice
в фильтрованном массиве.
Вот рабочий пример: http://jsfiddle.net/andrewwhitaker/vqwBP/
Вы можете установить для параметра minlength
какое-то большое значение, или вы можете сделать это с помощью css, как это,
.ui-autocomplete { height: 200px; overflow-y: scroll; overflow-x: hidden;}
То же, что и "Jayantha", используя css, будет самым простым, но это может быть лучше,
.ui-autocomplete { max-height: 200px; overflow-y: scroll; overflow-x: hidden;}
Обратите внимание, что единственная разница - "max-height". это позволит виджету изменять размер до меньшей высоты, но не более 200 пикселей
Добавляя к Andrew answer, вы даже можете ввести свойство maxResults
и использовать его следующим образом:
$("#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/
Это должно обеспечить читаемость кода и удобство обслуживания!
вот что я использовал
.ui-autocomplete { max-height: 200px; overflow-y: auto; overflow-x: hidden;}
Переполнение автоматически, поэтому полоса прокрутки не показывается, когда она не должна.
Если результаты получены из запроса mysql, более эффективно ограничивать результат mysql:
select [...] from [...] order by [...] limit 0,10
где 10 - максимальное количество строк, которые вы хотите
Plugin: jquery-ui-autocomplete-scroll с скроллером и предельные результаты красивы
$('#task').autocomplete({
maxShowItems: 5,
source: myarray
});
Я сделал это следующим образом:
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
}
}
));
jQuery позволяет вам изменять настройки по умолчанию при подключении автозаполнения к входу:
$('#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
}
});
Я мог бы решить эту проблему, добавив в мой CSS файл следующий контент:
.ui-autocomplete {
max-height: 200px;
overflow-y: auto;
overflow-x: hidden;
}
Параметр max отсутствует.
Я пробовал все вышеперечисленные решения, но мои только работали следующим образом:
success: function (data) {
response($.map(data.slice (0,10), function(item) {
return {
value: item.nome
};
}));
},
В моем случае это прекрасно работает:
source:function(request, response){
var numSumResult = 0;
response(
$.map(tblData, function(rowData) {
if (numSumResult < 10) {
numSumResult ++;
return {
label: rowData.label,
value: rowData.value,
}
}
})
);
},