你如何使用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
选项设置默认值。 我希望有所帮助。