如果数据不是本地数据,您如何限制搜索结果的数量。我知道本地数据很容易被限制,如下所示。
source: function(request, response) {
var results = $.ui.autocomplete.filter(myarray, request.term);
response(results.slice(0, 10));`
当我从外部获取数据时,这种方法效果不佳。以下是我的代码。
$(function() {
$("#search").autocomplete({
source: "/accounts/ajax/search/",
minLength: 2,
select: function(event, ui ){
window.open(ui.item.url,'_self')},
open: function(event, ui) {
$('.ui-autocomplete').append("<li><a class = \" text-primary\" href='javascript:document.getElementById(\"search_form\").submit();'> See All Result </a></li>");
},
});
});
答案 0 :(得分:2)
您可以替换value for source with a function,然后手动执行ajax请求和结果处理:
$(function() {
$("#search").autocomplete({
source: function(request, response) {
$.get("/accounts/ajax/search?term=" + request.term, function(data) {
//limit results here
response(data.slice(0, 10));
});
},
...
});
});
答案 1 :(得分:1)
您必须自己制作ajax请求并将有限的结果传递给响应回调。
默认情况下,当source是一个字符串时,会对提供的字符串发出GET请求,其参数名称为term,值为输入值。所以你必须重现这个:
N
n
10
25