我已经在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));
}
});
我不知道我做错了什么,但是当我去搜索时,这只是行不通!我仍然看到了很多(很多,很多很多)结果。
我该怎么做才能解决这个问题?
答案 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" />