多表单交互

Multiple Forms Interaction

我在尝试通过另一个表单中定义的按钮提交表单时遇到问题。

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Test submit</title>
</head>
<body>
  <form id="dummyForm" name="dummyForm">
    <button onclick="sendTheForm();">Submit other form</button>
  </form>
  <form id="formID" name="formName" action="viewpost.php" method="POST">
    <input type="hidden" value="something" id="inputA1" name="inputA1" />
    <input type="hidden" value="something" id="inputA2" name="inputA2" />
  </form>
  <script type="text/javascript">
  function sendTheForm() {
    document.forms['formName'].submit();
  }
  </script>
</body>
</html>

实现预期重定向的唯一方法是更改​​以下行:

onclick="sendTheForm();return false;"

我不明白表单提交是这样的。谁能解释一下?

提前致谢!

  1. 您点击提交按钮
  2. JavaScript 事件处理程序触发
  3. 其他表单开始提交
  4. 提交按钮执行其默认操作
  5. 第一个表单提交,取消另一个表单的提交过程

我从 this post thanks to Quentin tips. Why submit trigger in the first place? Cause default type of a button it is a submit type, but different browsers use different default types. Check Button Reference 得到了正确答案。

下一行按预期工作,没有 return false 技巧!

<button type="button" onclick="sendTheForm();">Submit other form</button>