Ограничить результаты в автозаполнении пользовательского интерфейса jQuery
Я использую автозаполнение jQuery UI.
$("#task").autocomplete({
max:10,
minLength:3,
source: myarray
});
параметр max не работает, и я все еще получаю более 10 результатов. Я что-то упустил?
13 ответов:
здесь соответствующей документации на jQueryUI виджет. Там нет встроенного параметра для ограничения максимальных результатов, но вы можете сделать это легко:
$("#auto").autocomplete({ source: function(request, response) { var results = $.ui.autocomplete.filter(myarray, request.term); response(results.slice(0, 10)); } });
вы можете поставить функцию
Вы можете установить
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". это позволит виджету изменить размер на меньшую высоту, но не более 200px
добавлять к Эндрю, можно даже вводим a
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-максимальное число строк
плагин: jquery-ui-автозаполнение-прокрутка с помощью скроллера и ограничения результаты прекрасны
$('#task').autocomplete({ maxShowItems: 5, source: myarray });
Я мог бы решить эту проблему, добавив следующее содержимое в мой файл CSS:
.ui-autocomplete { max-height: 200px; overflow-y: auto; overflow-x: hidden; }
Я сделал это следующим образом :
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 } });