我正在使用autocomplete
的{{1}}:优秀的插件!
我唯一不喜欢的是,如果我有一个jQuery UI
列表,我只想显示40 items
。
这是我的实际代码:
10 items
是否可以放置一些参数来做这件事?
答案 0 :(得分:3)
来自迁移指南:
max:走了;如果您的服务器也发送 许多项目,传递一个功能 调用$ .ajax和的源选项 截断或过滤结果 列表。
http://www.learningjquery.com/2010/06/autocomplete-migration-guide
答案 1 :(得分:2)
如果您不想修改源列表,可以尝试滚动结果:
答案 2 :(得分:2)
您可以尝试使用回调函数作为源来实现自己的过滤器功能。类似的东西:
$('input').autocomplete({
source : function (request, response) {
var max = 10; // set this to something
var j = 0;
response($.map(availableTags, function(i) {
if (j < max && i.toLowerCase().indexOf(request.term.toLowerCase()) != -1) {
j++; return { label : i };
} else {
return null;
}
}));
}
});
这基本上是尝试检查字符串数组中的每个元素,并执行不区分大小写的contains
搜索。您可能需要修改它以仅检查startsWith
或endsWith
或您拥有的任何内容。当然,您可能还想使用regex
来加快速度。
我还在这里设置了一个简单示例:http://jsfiddle.net/2exCC/
尝试搜索C
之类的内容。这最多应返回scala
,并留下scheme
。
答案 3 :(得分:1)
这是一个讨厌的解决方案,你真的应该寻找一个更好的解决方案,但如果你找不到任何东西,你可以隐藏.ui-menu-item
时自动完成打开弹出窗口提示(open
事件)。
答案 4 :(得分:0)
是的。您需要使用setOptions()函数。
示例:
$('input#suggest').setOptions({
max: 15
});
http://docs.jquery.com/Plugins/Autocomplete/setOptions#options