我正在使用jQuery-ui和Solr制作一个带有自动完成功能的整洁搜索框。该查询似乎运行良好,但结果实际上并未显示在我的搜索框中。这是我正在使用的代码:
var cache = {};
$("#Keyword").autocomplete({
minLength: 3,
source: function(request, response) {
var term = request.term;
if(term in cache) {
response(cache[term]);
return;
}
$.getJSON("http://127.0.0.1:8080/solr/terms/?terms=true&terms.fl=ctnt_val&wt=json&indent=on&terms.prefix=" + $("#Keyword").val(),
request,
function(data, status, xhr) {
cache[term] = data;
response(data);
});
}
});
所以我最好的猜测是我没有正确处理返回的值。如何让它们在搜索框下方正确显示?
答案 0 :(得分:0)
我能够确定我的返回函数出了什么问题:我没有在结果中正确循环。最好的方法是使用map函数迭代它们。
$("#Keyword").autocomplete({
minLength: 3,
source: function(request, response) {
$query = "http://127.0.0.1:8080/solr/terms/?jsoncallback=?&terms=true&terms.prefix=" + $("#Keyword").val();
$.getJSON($query,
request,
function(data) {
response($.map(data.terms.ctnt_val, function(item) {
return item;
}));
}
);
}
});