我试图找出是否可以发布serialize()
表单之外的其他数据。
这是我认为可行的方法,但它只发送'wordlist'
而不是表单数据。
$.post("page.php",( $('#myForm').serialize(), { 'wordlist': wordlist }));
有没有人有任何想法?
我试图找出是否可以发布serialize()
表单之外的其他数据。
这是我认为可行的方法,但它只发送'wordlist'
而不是表单数据。
$.post("page.php",( $('#myForm').serialize(), { 'wordlist': wordlist }));
有没有人有任何想法?
您可以使用serializeArray
[docs]并添加其他数据:
var data = $('#myForm').serializeArray();
data.push({name: 'wordlist', value: wordlist});
$.post("page.php", data);
试试$.param
$.post("page.php",( $('#myForm').serialize()+'&'+$.param({ 'wordlist': wordlist })));
替代解决方案,以防您需要在 ajax 文件上传时执行此操作:
var data = new FormData( $('#form')[0] ).append( 'name' , value );
或者更简单。
$('form').on('submit',function(e){
e.preventDefault();
var data = new FormData( this ).append('name', value );
// ... your ajax code here ...
return false;
});
当你想在表单数据中添加一个javascript对象时,可以使用下面的代码
var data = {name1: 'value1', name2: 'value2'};
var postData = $('#my-form').serializeArray();
for (var key in data) {
if (data.hasOwnProperty(key)) {
postData.push({name:key, value:data[key]});
}
}
$.post(url, postData, function(){});
或者,如果您添加方法serializeObject(),您可以执行以下操作
var data = {name1: 'value1', name2: 'value2'};
var postData = $('#my-form').serializeObject();
$.extend(postData, data);
$.post(url, postData, function(){});
在新版本的 jquery 中,可以通过以下步骤完成:
serializeArray()
push()
或类似的方法向数组添加额外的参数,$.param(arr)
获取序列化字符串,可以用作jquery ajax 的data
参数。示例代码:
var paramArr = $("#loginForm").serializeArray();
paramArr.push( {name:'size', value:7} );
$.post("rest/account/login", $.param(paramArr), function(result) {
// ...
}