jQuery v1.2.6
jQuery.autocompleter插件v1.1pre(来自jQuery的网站)
我无法使用'type:“POST”'提交回我的网络服务。我不能让它被自动完成器识别。想法?
只要我查找“q”查询字符串,下面的代码就可以正常工作。但是,我希望通过传递更多参数来将此用于更高级的功能,并希望如何使用自动完成器进行回发。
我知道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。你会注意到我:
我真的希望上面的代码能帮助其他人在未来找出自动完成程序。如果有,请给我一个投票。
提示:属性名称data [i] .Data和data [i] .Name是JSON属性名称。
答案 0 :(得分:2)
此时(Autocompleter 1.1pre),没有办法在不更改插件代码的情况下发布它。
我刚刚离开它提交查询字符串。谢谢大家的回答,我提高了投票率。
答案 1 :(得分:1)
您可以将''all''jquery ajax调用的默认值设置为post,然后在您想要的任何脚本中覆盖它们。覆盖也可能适用于此...尝试将其放在代码的顶部:
$.ajaxSetup({
type: 'POST'
});
您可以使用$.ajaxSetup()
调用为任何常规$.ajax
/ $.post
/ $.get
选项设置默认值。我希望有所帮助。