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

arb*_*bme 41 jquery serialization jsonobject

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

472*_*084 131

如果您$('form').serialize()在具有多个表单的页面上运行,它将正确地将所有表单序列化为一个字符串.

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

  • @ 472084我尝试了`$('#form1,#form2')。serialize()`方法,但没有成功,只有最后一个表单会被发布。我有1big格式,必须分解为2,其中第二个仅在第1个验证通过后才出现(这就是为什么我必须将其分解为2)。因此,第一个提交将不提交数据,而仅验证,而最后一个提交将序列化这两个表单并提交所有数据。我最终不得不分别序列化这两种形式,并使用`&`将它们连接起来以使其起作用。您知道的任何文档都可以直接让我了解为什么会失败吗?我会继续搜寻 (2认同)

Jac*_*son 27

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


Vin*_*ins 19

我喜欢上面Jleagle的回答.

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

$('#detailsform,#levelForm').serialize();
Run Code Online (Sandbox Code Playgroud)

上面的行将返回一个字符串值.喜欢customId=08071992&cort=01&empId=7777

您可以通过将属性添加disabled="disabled"到输入字段来避免不需要的字段

  • 感谢您指出`input(disabled)`不包含在`$().serialize()`中. (2认同)