【问题标题】:Submit two forms with one submit button - Javascript [duplicate]使用一个提交按钮提交两个表单 - Javascript [重复]
【发布时间】:2014-10-08 01:16:25
【问题描述】:

我有以下表格:

<form name="google" method="post" action="http://google.com/"></form>
<form name="yahoo" method="post" action="http://yahoo.com" target="_blank"></form>

是否有机会通过单击鼠标来提交这两个表单,例如一个提交按钮? jQuery 解决方案是不可接受的,因为我拥有的网站没有使用它,因此为单个操作加载外部库是不合理的。

有机会通过纯 Javascript 实现吗?

提前致谢!

【问题讨论】:

  • 您可以在点击提交时调用 js 函数,然后您可以在两个表单上手动触发 SUBMIT 事件。我认为这会奏效
  • @mulla.azzi 不,如果它触发 POST,那将不起作用。发布后页面重新加载,第二个表单的信息将丢失。在发送之前,您需要保护第二个表格中的信息
  • 是的,我可以使用 AJAX。 AJAX 请求的任何示例?我设法找到的都是用 jQuery 编写的
  • target="_blank" 添加到您的两个表单中,它们应该打开并在新窗口中发布。

标签: javascript forms


【解决方案1】:

遗憾的是,afaik 简单的答案是否定的,因为如果您提交一个表单,页面会重新加载并将 $_POST 发布到服务器。你不能将两种形式结合在一个标签下吗? HTML5 可以做到这一点。您还可以使用隐藏字段并阅读第二个表单,并在发送前向第一个表单隐藏字段提供信息。

希望有帮助,干杯!

【讨论】:

  • 我不能合并,因为我需要打开两个不同的url,一个是我的网站,第二个是外部的。
  • @AlexF 那么 AJAX 将是您的选择,尽管这是一种笨拙的方式,因为您将数据发送到两个不同的外部来源。由于“同源策略”,通常 AJAX 仅适用于您自己的域,请参见此处:stackoverflow.com/questions/4613310/…
【解决方案2】:

html:

<form id="form1" name="google" method="post" action="http://google.com/" onsubmit="submitBoth(); return false;"></form>
<form id="form2" name="yahoo" method="post" action="http://yahoo.com" target="_blank" onsubmit="submitBoth(); return false;"></form>

js:

function submitBoth() {
  document.getElementById('form1').submit();
  document.getElementById('form2').submit();
}

【讨论】:

  • Afaik 这不起作用,因为第一次提交会重新加载页面。此外,您的答案是 ctrl + c / v 来自关于该主题的第一条评论。
  • 当然)) 需要使用XMLHttpRequest
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 2011-04-14
  • 2017-01-21
相关资源
最近更新 更多