如果有onclick提交,表单会提交两次吗?

时间:2018-01-19 15:57:46

标签: javascript

我已told您需要添加" return false"到提交表单的方法的末尾。

我已经尝试了以下代码,虽然我省略了&#34; <form name="myform" action=""> <button type='submit' onclick='submitForm();'>Submit</button> </form> <script> function submitForm(){ console.log('Button Clicked'); document.myform.submit(); } </script> &#34;表单只提交一次,而不是两次。有没有人知道标准的浏览器行为,它决定了javascript表单提交是否会覆盖html表单提交还是被认为是一个动作?

<input type='submit' onclick='submitForm();'/>

如果我将按钮更改为输入类型,我的测试中只有一个提交而不是两个,但我想确认这是标准行为。 即:

{{1}}

1 个答案:

答案 0 :(得分:0)

正如您所链接的答案的评论中所述,事实是submit只会以您处理的形式提交数据,而onclick属性会触发您的方法调用,触发在里面另一个提交。

我认为它的行为如下(如果我错了,请随时纠正我):

  • 您点击了按钮。
  • 点击后会触发onclick值,该值会调用submitForm()方法。
  • 您的方法在控制台中打印“Button Clicked”。
  • 您的文件是第一次发送。
  • 表单是通过submit类型第二次提交的。

这可以解释为什么你一次看到你的console.log。您必须在服务器端跟踪结果,以检查文档是否已提交一次或两次。

(如果只有一次,这个答案是完全错误的。)