1

许多人使用 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) ;
 }
});

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

谢谢。

4

1 回答 1

1

如果您的数据存储在本地,您应该只使用“过滤器”。如果它是远程的,您应该在发送之前先在服务器端过滤它。

来自 jQuery UI 文档:

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

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

您的第一个示例适用于这种情况。

于 2013-09-02T03:29:18.783 回答