当提交多个表单时,jQuery只提交一个表单

时间:2016-03-26 14:19:06

标签: javascript jquery forms google-chrome-extension content-script

我正在写一个chrome扩展程序。在我的内容脚本中,我使用 target =“_ blank”将两个表单注入到DOM中。表格在页面上可见

表格1

<form action="page1.php" target="_blank" id="form1" method="POST">
    <input type="submit" value="Save" id="savebutton1">
</form>

表格2

<form action="page2.php" target="_blank" id="form2" method="POST">
    <input type="submit" value="Save" id="savebutton2">
</form>

我想使用jQuery提交这两个表单,所以我写了;

   $( "#form1" ).submit();
   $( "#form2" ).submit();

但最后只打开了一个标签,这只是最后一个提交的表单,我的第一个表单被忽略了。但我想打开两个标签

我不仅可以在一个标签中看到page2.php。我的page1.php永远不会被调用。请帮助解决问题

2 个答案:

答案 0 :(得分:0)

这是不可能的。

浏览器只能提交一个表单并处理单个表单在服务器上生成的任何重定向。

如果您需要提交多个表单,则需要使用不同的方法,例如使用ajax

答案 1 :(得分:0)

正如@charlietfl所说,当你试图这样做时,这不可能完成。

但是,根据您的后端系统,您可以制作复合表单并在那里解析数据。我知道,C#可以解决这个问题。

<input name="form1.xxx">
<input name="form2.xxx">

然后,在C#中你可以创建你的对象

class Form1 {
    xxx: string
}

class Form2 {
    xxx: string
}

class Combined {
  form1: Form1,
  form2: Form2
}

使用以下代码访问它:Combined.form1.xxx