Jquery 是否可以在自动完成时设置最大结果数?
我正在使用Jquery 是否可以在自动完成时设置最大结果数?,jquery,jquery-ui,jquery-autocomplete,Jquery,Jquery Ui,Jquery Autocomplete,我正在使用jqueryui的autocomplete:优秀的插件 我唯一不喜欢的是,如果我有一个40个项目的列表,我只想显示10个项目 这是我的实际代码: <script type="text/javascript"> $(function() { var availableTags = [<%= m_strTags %>]; $("#myTags").autocomplete({ source: avail
jqueryui
的autocomplete
:优秀的插件
我唯一不喜欢的是,如果我有一个40个项目的列表
,我只想显示10个项目
这是我的实际代码:
<script type="text/javascript">
$(function() {
var availableTags = [<%= m_strTags %>];
$("#myTags").autocomplete({
source: availableTags,
max: 20
});
});
</script>
$(函数(){
var availableTags=[];
$(“#myTags”).autocomplete({
资料来源:availableTags,
最高:20
});
});
是否可以设置一些参数来执行此操作?是的。您需要使用setOptions()函数 例如:
$('input#suggest').setOptions({
max: 15
});
来自迁移指南: 马克斯:走了;如果您的服务器也发送 许多项,传递一个函数 调用$.ajax和 截断或过滤结果 名单
这是一个糟糕的解决方案,你真的应该找一个更好的解决方案,但是如果你找不到任何东西,你可以在autocomplete打开带有建议的弹出窗口(
打开
事件)时隐藏.ui菜单项。如果你不想修改源代码列表,你可以尝试滚动结果:
您可以尝试使用回调函数作为源来实现自己的筛选函数。比如:
$('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;
}
}));
}
});
$('input')。自动完成({
来源:功能(请求、响应){
var max=10;//将其设置为
var j=0;
响应($.map)(可用标记,函数(i){
if(j
这基本上是尝试检查字符串数组中的每个元素,并执行不区分大小写的contains
搜索。您可能希望对其进行修改,以仅检查startsWith
或endsWith
或您拥有的任何内容。当然,您也可能希望使用regex
来加快速度
我还在这里设置了一个快速示例:
尝试搜索类似于C
的内容。这应该返回到scala
,并留下scheme
autcomplete使用远程文件来处理结果,对吗?似乎没有简单的方法可以做到这一点。你应该设置这个服务器端我做不到:列表是静态的,我不会自动更新它…哦,对不起,我不这么认为=(没问题!谢谢你的帮助:)这不是jQueryUI插件;它应该被弃用,不是吗?