Ajax 在jquery ui自动完成中组合本地源和远程源
我在javascript中包含了一个常用术语的本地列表,然后我还希望通过ajax响应从服务器获得json响应。怎样才能做到呢Ajax 在jquery ui自动完成中组合本地源和远程源,ajax,jquery-ui,autocomplete,jquery-autocomplete,jquery-ui-autocomplete,Ajax,Jquery Ui,Autocomplete,Jquery Autocomplete,Jquery Ui Autocomplete,我在javascript中包含了一个常用术语的本地列表,然后我还希望通过ajax响应从服务器获得json响应。怎样才能做到呢 var projects = ["apple", "orange"]; $('#search').autocomplete({ source: projects }); 然后附加来自ajax的结果?执行此操作的方法是将从服务器返回的结果与本地结果数组相结合。您可以通过将函数传递给autocomplete的源选项来完成此操作: 您必须执行三个步骤: 发出AJAX
var projects = ["apple", "orange"];
$('#search').autocomplete({
source: projects
});
然后附加来自ajax的结果?执行此操作的方法是将从服务器返回的结果与本地结果数组相结合。您可以通过将函数传递给autocomplete的
源
选项来完成此操作:
您必须执行三个步骤:
$("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));
}
});
}
});
我在这里设计了一个完整的示例:换句话说,如果本地结果不存在,是否进行AJAX调用?或者您总是想进行AJAX调用吗?实际上,在任何情况下都要按顺序进行AJAX调用。换句话说,如果您有两个源,并且您没有在服务器端进行组合,那么有没有一种方法可以通过javascript组合来自这两个源的结果?是的,有。我想我有足够的信息发布一个答案如果你想显示本地结果,然后在远程结果可用时附加这些结果呢?我觉得很愚蠢。您只需使用新结果再次调用response()。