将多个表单序列化在一起?

时间:2012-02-14 16:45:21

标签: jquery serialization jsonobject

您可以将多个表单序列化为一个,以便只发出一个帖子或ajax请求吗?我已经四处寻找,只需通过post / ajax提交每个表单。

4 个答案:

答案 0 :(得分:128)

如果您在包含多个表单的网页上运行$('form').serialize(),则会将所有表单正确序列化为一个字符串。

要仅包含某些表单,请使用$('#form1, #form2').serialize()

答案 1 :(得分:25)

当您使用jQuery serialize()函数时,它只是将您的表单转换为a=1&b=2&c=3格式的字符串。因此,您当然可以将此函数应用于两个表单并连接结果,并在它们之间使用&,并在ajax调用中使用结果。在进行连接时,您需要进行一些检查以确保两个字符串都不为空。

答案 2 :(得分:18)

我喜欢上面Jleagle的回答。

如果您对表格更具体,请使用

$('#detailsform,#levelForm').serialize();

上面的行将返回一个字符串值。比如customId=08071992&cort=01&empId=7777

您可以通过将属性disabled="disabled"添加到输入字段

来避免不需要的字段

答案 3 :(得分:0)

对我来说,解决方案是:

$('#firstForm').append($('#secondForm').children());
$('#firstForm').submit();

在我的例子中的结果 - 在一个查询字符串中使用两种形式的单个 GET 查询。