限制结果jQuery自动完成功能不起作用

时间:2013-09-24 01:43:04

标签: javascript jquery autocomplete

我已经在StackOverflow中浏览了很多答案,我认为之前没有人有这个问题。这有点奇怪,但是当我试图限制jQuery Autocomplete中的结果时,它就不起作用了。

我不知道我能在这里粘贴什么,所以我会粘贴一小段代码然后告诉我缺少什么。

$("input[type=search]").autocomplete({
    delay: 0,
    autoFocus: true,
    source: function (request, response) {
        populate(request.term, response);

        result = $.ui.autocomplete.filter(result, request.term)

        response(result.slice(0, 10));
    }
});

我不知道我做错了什么,但是当我去搜索时,这只是行不通!我仍然看到了很多(很多,很多很多)结果。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

看起来您可能会将源选项http://api.jqueryui.com/autocomplete/#option-source与响应选项http://api.jqueryui.com/autocomplete/#event-response

混合在一起

检查文档,看看是否有帮助设置:

$("input[type=search]").autocomplete({
    delay: 0,
    autoFocus: true,
    source: function (request, response) {
        // return data you want to search against
    },
    response: function(event, ui) {
        // manipulate result data in ui.content and return
    }
}

});

答案 1 :(得分:1)

对我有用的是以这种方式引用事物。

<script>

$(":input[data-autocomplete]").each(function () {
$(this).autocomplete({
    delay: 0,
    autoFocus: true,
        source: $(this).attr("data-autocomplete"),
        select: function (event, ui) {
            if (ui.item) {
                alert(ui.item.id);
            }
        }
    });
}); 
</script>

然后使用标准javascript数据引用自动完成服务器端脚本的位置

<input type="text" data-autocomplete="/Home/QuickSearch" />

这允许多个快速搜索,并且还处理对服务器端位置的更改引用。

如果您保留开头行,请在您自己的代码中,确保输入类型设置为搜索

<input type="search" />