如何更改jQuery自动完成插件默认查询字符串键? (我要的那个词)

jQuery autocomplete插件发送了这样的请求

mysite.com/suggestion?term=Sadegh 

有没有办法将术语查询字符串更改为另一个? 我找不到为我提供此选项的选项;)

我假设您正在使用jQuery UI AutoComplete

您需要提供回调作为源,如下所示:

 $(...).autocomplete({ source: function(term, callback) { $.getJSON("url", { foo: term }, callback); } }); 

以上内容对于当前版本(1.8.6)不正确。 不知道是不是……

 $(...).autocomplete({ source: function(request, response) { $.getJSON("url", { foo: request.term }, response); } }); 

foo:成为新的param键名..

实际上我挖出了插件使用的代码。 调整它以改变术语将是这样的:

 $('#form').autocomplete({ source: (function() { var xhr; return function(request, response) { if (xhr) { xhr.abort(); } xhr = $.ajax({ url: 'mysite.com/suggestion', data: { foo: request.term }, dataType: 'json', success: function(data) { response(data); }, error: function() { response([]); } }); } })() }); 

我想说这有两个好处:

  1. 中止待处理的请求
  2. 如果出现错误,请使用空集调用响应,这对我来说似乎更有礼貌