为什么submit()方法没有触发onsubmit事件?

时间:2017-08-13 18:46:13

标签: javascript

我的表格如下:

<form action="/action_page.php" onsubmit="alert('The form was submitted');" >
  Enter name: <input type="text" name="fname">
  <input type="button" onclick="document.getElementsByTagName('form')[0].submit()" value="Submit">
</form>

虽然我点击了按钮并确实提交了表单,但alert框未显示。也就是说,submit()方法提交了表单但没有触发onsubmit事件。发生了什么?我应该如何使用submit()方法触发onsubmit事件?

2 个答案:

答案 0 :(得分:1)

嗯,documentation for the submit method非常明确,它不会触发onsubmit。

由于以下任何表单元素都会导致表单提交:

<input type='submit'>
<input type='button'>
<button>

您可能根本不需要在该按钮上使用onclick处理程序

答案 1 :(得分:0)

您似乎无法查看此帖子 - https://stackoverflow.com/a/19847255/8449863

但是,请尝试使用隐藏的提交按钮解决方法:

<form action="/action_page.php" onsubmit="alert('The form was submitted');" >
  Enter name: <input type="text" name="fname">
  <input type="button" value="Submit" onclick="document.getElementById('submit').click();" >
  <input id="submit" type="submit" style="display: none;" />
</form>