jQuery: serialize() form and other parameters
是否可以通过单个AJAX请求发送表单元素(使用
例:
1 2 3 4 5 6 7 8 9 10 | $.ajax({ type : 'POST', url : 'url', data : { $('#form').serialize(), par1 : 1, par2 : '2', par3: 232 } } |
如果不是,与其他参数一起提交表单的最佳方法是什么?
谢谢
1 2 3 4 5 | $.ajax({ type : 'POST', url : 'url', data : $('#form').serialize() +"&par1=1&par2=2&par3=232" } |
或者,如果将参数存储在某个对象变量中,则可以将
1 | var data = form.serialize() + '&' + $.param(object) |
有关更多参考,请参见http://api.jquery.com/jQuery.param。
我不知道,但是以上都不对我有用,然后我用了它,它起作用了:
在表单的序列化数组中,将其存储为键值对
我们将新的一个或多个值推送到表单变量中,然后现在就可以直接传递此变量。
1 2 3 4 5 6 | var form = $('form.sigPad').serializeArray(); var uniquekey = { name:"uniquekey", value: $('#UniqueKey').val() }; form.push(uniquekey); |
这样传递参数值
1 | data : $('#form_id').serialize() +"¶meter1=value1¶meter2=value2" |
等等。
如果您想使用表格序列化发送数据,则可以尝试此操作
1 2 3 4 5 6 7 8 9 10 11 | var form= $("#formId"); $.ajax({ type: form.attr('method'), url: form.attr('action'), data: form.serialize()+"&variable="+otherData, success: function (data) { var result=data; $('#result').attr("value",result); } }); |
按照Rory McCrossan的回答,如果要发送整数数组(几乎是.NET),则代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // ... url:"MyUrl", // For example --> @Url.Action("Method","Controller") method:"post", traditional: true, data: $('#myForm').serialize() + "¶m1="xxx" + "¶m2="33" + "&" + $.param({ paramArray: ["1","2","3"]}, true) , // ... |
您也可以使用serializeArray函数执行相同的操作。
我用欠声明解决了这个问题;
使用相同的GET方法发送带有url的数据
1 2 3 4 | $.ajax({ url: 'includes/get_ajax_function.php?value=jack&id='+id, type: 'post', data: $('#b-info1').serializeArray(), |
并使用
您可以使用jQuery创建具有其他表单内容的辅助表单,然后在其他参数中添加该表单,因此您只需要在ajax调用中序列化即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function createInput(name,value){ return $('<input>').attr({ name: name, value: value }); } $form = $("<form></form>"); $form.append($("#your_form input").clone()); $form.append(createInput('input_name', 'input_value')); $form.append(createInput('input_name_2', 'input_value_2')); .... $.ajax({ type : 'POST', url : 'url', data : $form.serialize() } |