我有这个工作代码:
jQuery.ajax({
type: 'post',
url: 'http://www.someurl.com/callback.php',
dataType: 'json',
data: jQuery(':input[name^="option"][type=\'checkbox\']:checked, :input[name^="option"][type=\'text\']'),
complete: function (mydata) {
//do something with it
}
});
成功发回任何已选中的复选框和所有文本框。但是现在我想要添加一些任意数据。但不知道如何格式化它。基本上我想简单地添加我自己的名称=值对“test = 1”,以便在回调中我看到它像其他人一样。但无论我尝试什么,我都看不到以预期的格式获得正确的语法。不确定我是否应该在jQuery()包装或外部添加它..我已经尝试序列化,encodeURIComponent,基本字符串“& test = 1”
有什么想法吗?
答案 0 :(得分:1)
最好的办法是在AJAX调用之外构建参数,如下所示:
var params = jQuery(':input[name^="option"][type=\'checkbox\']:checked, :input[name^="option"][type=\'text\']');
params.test = 1;
params.test2 = 2;
然后在您的AJAX调用中,只需使用:
jQuery.ajax({
type: 'post',
url: 'http://www.someurl.com/callback.php',
dataType: 'json',
data: params,
complete: function (mydata) {
//do something with it
}
});
编辑:通常在使用jQuery收集输入时,我倾向于使用.each函数,如下所示:
var params = new Object();
$.each('input[name^=option]', function() {
if ((this.type === 'checkbox' && $(this).is(':checked')) || this.type === 'text' && this.value !== '') {
params[this.name] = this.value;
}
});
然后,如果你想添加参数,你可以在此之后或者在创建新对象之后这样做。
答案 1 :(得分:1)
我忘了以前问过这件事。它被正确回答所以我正在分享链接:
How can I pass form data AND my own variables via jQuery Ajax call?