Javascript 为什么submit()方法没有';不触发提交事件?
我有如下表格:Javascript 为什么submit()方法没有';不触发提交事件?,javascript,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 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>
输入名称:
虽然我点击了按钮,它确实提交了表单,但是没有显示警报
框。也就是说,submit()
方法提交了表单,但没有触发onsubmit
事件。怎么搞的?我应该如何使用submit()
方法触发onsubmit
事件?很明显,它不会触发onsubmit
由于以下任何表单元素导致表单提交:
<input type='submit'>
<input type='button'>
<button>
您可能根本不需要该按钮上的onclick处理程序您似乎不需要,请查看此帖子- 但是,请尝试隐藏提交按钮的解决方法:
<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>
输入名称:
您需要添加一个输入,键入submit按钮,当您单击它时,只有onsubmit会自动触发。将下面的元素添加到您的html中,然后单击它
顺便说一句,您可以简单地使用document.forms[0]
,或者如果是代码中的表单元素,则使用this.form
,因为它是一个按钮。它一舔就会着火。在onclick中,您通过javascript提交了表单。您可以尝试将其更改为输入类型submit,以查看是否有任何差异。在这种情况下,您不需要';不需要通过javascript调用submit。