【发布时间】:2012-03-06 01:08:00
【问题描述】:
您能否将多个表单序列化为一个表单,以便只发出一个 post 或 ajax 请求?我搜索了一下,都是为了通过 post/ajax 分别提交每个表单。
【问题讨论】:
标签: jquery serialization jsonobject
您能否将多个表单序列化为一个表单,以便只发出一个 post 或 ajax 请求?我搜索了一下,都是为了通过 post/ajax 分别提交每个表单。
【问题讨论】:
标签: jquery serialization jsonobject
对我来说,解决方案是:
$('#firstForm').append($('#secondForm').children());
$('#firstForm').submit();
在我的情况下的结果 - 在一个查询字符串中包含两种形式的单个 GET 查询。
【讨论】:
我喜欢上面Jleagle 的回答。
如果您对表格更具体,请使用
$('#detailsform,#levelForm').serialize();
上面的行将返回一个字符串值。喜欢customId=08071992&cort=01&empId=7777
您可以通过将属性disabled="disabled" 添加到输入字段来避免不需要的字段,或者换句话说,“禁用”字段不会被序列化。
【讨论】:
input[disabled] 不包含在$().serialize() 中。
如果您在具有多个表单的页面上运行$('form').serialize(),它将正确地将所有表单序列化为一个字符串。
要仅包含某些表格,请使用$('#form1, #form2').serialize()
【讨论】:
$('#form1, #form2').serialize() 的方法,但没有成功,只有最后一个表单会被发布。我有 1big 表格,我必须分解为 2,其中第二个仅在第一个验证后出现(这就是我必须将其分解为 2 的原因)。所以第一次提交不会提交数据,而只是验证,而最后一次会序列化两个表单并提交所有数据。我最终不得不分别序列化这两种形式并用& 连接它们以使其工作。您知道的任何文档都可以让我直接了解为什么会失败?我会继续谷歌搜索
当您使用 jQuery serialize() 函数时,它只是将您的表单转换为格式为 a=1&b=2&c=3 的字符串。因此,您当然可以将此函数应用于两个表单并将结果连接起来,在它们之间使用&,并在您的ajax 调用中使用结果。您需要进行一些检查以确保在进行连接时两个字符串都不为空。
【讨论】: