jQuery使用带有autocomplete.filter的getJson自动完成远程数据

时间:2013-09-01 01:22:18

标签: jquery autocomplete jquery-autocomplete getjson

许多人正在使用带有这样的远程数据源的jQuery Autocomplete:

$("#auto").autocomplete({
  source: function( request, response ) {
    $.getJSON( "search.php", { // get the json here
      term: extractLast( request.term ) // function further, up not important
    }, response );
  }
});

许多人正在过滤他们的数据数组:

$("#auto").autocomplete({
  source: function(request, response) {
  var results = $.ui.autocomplete.filter(myarray, request.term); //data in "myarray"

  response(results) ;
 }
});

我找不到任何人过滤远程数据源的例子,我真的需要两者。如果可能的话,我想将它们组合成代码块。

感谢。

1 个答案:

答案 0 :(得分:1)

你应该只使用"过滤器"如果您的数据是本地存储的。如果它是远程的,你应该先在服务器端过滤它,然后再发送它。

来自jQuery UI文档:

  

自动完成插件不会过滤结果,而是添加一个带有术语字段的查询字符串,服务器端脚本应使用该字段来过滤结果。例如,如果source选项设置为" http:// example.com"并且用户键入foo,将向http:// example.com?term=foo发出GET请求。数据本身的格式与上述本地数据的格式相同。

http://api.jqueryui.com/autocomplete/

您的第一个示例适用于此方案。