Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么submit()方法没有';不触发提交事件?_Javascript - Fatal编程技术网

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。