5

我在javascript中本地包含了一个常用术语列表,然后我也想通过ajax响应从服务器获取json响应。怎么做到呢?

var projects = ["apple", "orange"];

$('#search').autocomplete({
    source: projects
});

然后追加来自ajax的结果?

4

1 回答 1

6

您将采取的方法是将您从服务器返回的结果与本地结果数组结合起来。您可以通过将函数传递给source自动完成选项来完成此操作:

您必须执行三个步骤:

  1. 发出 AJAX 请求并从服务器获取结果。
  2. 过滤本地数组
  3. 合并结果

这应该很简单。像这样的东西会起作用:

$("input").autocomplete({
    source: function(request, response) { 
        /* local results: */
        var localResults = $.ui.autocomplete.filter(localArray, request.term);

        /* Remote results: */
        $.ajax({
            /* AJAX options omitted... */
            success: function(data) {
                /* Process remote data using $.map, if necessary, then concatenate local
                 * and remote results. 
                 */
                response(data.concat(localResults));
            }
        });
    }
}); 

我在这里制定了一个完整的例子:http: //jsfiddle.net/FZ4N4/

于 2012-12-27T19:36:54.330 回答