Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 是否可以在自动完成时设置最大结果数?_Jquery_Jquery Ui_Jquery Autocomplete - Fatal编程技术网

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插件;它应该被弃用,不是吗?