你如何使用POST与jQuery Autocompleter?

jQuery v1.2.6

jQuery.autocompleter插件v1.1pre(来自jQuery的网站)

我无法使用’type:“POST”’提交回我的网络服务。 我不能让它被自动完成器识别。 思考?

只要我查找“q”查询字符串,下面的代码就可以正常工作。 但是,我希望通过传递更多参数来使用它来获得更高级的function,并希望如何使用自动完成器进行回发。

我知道extraParams选项。 但是,那些是通过GET或POST提交的额外参数(如果我们可以使POST工作)。 它不会改变它作为POST提交。

$(function() { $('#searchBox').autocomplete( "/services/college.asmx/lookupColleges", { delay: 5, minChars: 1, matchSubset: 1, matchContains: 1, cacheLength: 10, autoFill: false, dataType: 'json', parse: function(data) { var rows = new Array(); for (var i = 0; i < data.length; i++) { rows[i] = { data: data[i] , value: data[i].Data , result: data[i].Name }; } return rows; }, formatItem: function(row, i, n) { return row.Name; } }).result(function(event, row) { processSelection(this, row.Data); }); }); 

我尝试添加POST选项,如下面的代码示例中所述。 但它仍然作为GET提交。

 delay: 5, minChars: 1, matchSubset: 1, matchContains: 1, cacheLength: 10, autoFill: false, dataType: 'json', type: 'POST', 

任何帮助表示赞赏。

谢谢!

PS,很多都是没有证件的,并且是PITA在经过反复试验后弄明白的。 谢天谢地,感谢Firebug。

你会注意到我是:

  • 从Web服务接收JSON
  • 自动完成function无法本机处理JSON,因此我必须将其解析为我自己的数组。
  • 由于我现在传回一个自定义数组对象,因此需要覆盖formatItem以便为显示目的处理新数组对象。
  • 最后拍摄的钱,我想在用户选择一行(鼠标单击或TAB或ENTER键)后处理该行的额外数据。 我使用result()委托执行此操作。

我真的希望上面的代码可以帮助其他人在未来找出自动完成器。 如果有,请给我一个投票。

提示:属性名称data [i] .Data和data [i] .Name是JSON属性名称。

此时(Autocompleter 1.1pre),没有办法让它发布而不更改插件的代码。

我刚刚离开它提交查询字符​​串。 谢谢大家的回答,我提高了投票率。

您可以将”all”jquery ajax调用的默认设置设置为post,然后在您想要的任何脚本中覆盖它们。 覆盖也可能适用于此…尝试将其放在代码的顶部:

 $.ajaxSetup({ type: 'POST' }); 

您可以使用$.ajaxSetup()调用为任何普通的$.ajax / $.post / $.get选项设置默认值。 我希望有所帮助。