0

我正在使用 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);
        });
    }
});

所以我最好的猜测是我没有正确处理返回的值。我怎样才能让它们正确显示在我的搜索框下方?

4

1 回答 1

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;
                }));
            }
        );
    }
});
于 2013-05-06T13:33:38.097 回答