繁体   English   中英

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

[英]Will form submit twice if there's an onclick submit?

有人告诉我您需要在提交表单的方法的末尾添加“ return false; ”。

我尝试了以下代码,尽管我省略了“ return false ”,但该表单仅提交一次,而不是两次。 有谁知道标准的浏览器行为,该行为决定了javascript表单提交会覆盖html表单提交还是被视为一项操作?

<form name="myform" action="">
    <button type='submit' onclick='submitForm();'>Submit</button>
</form>
<script>

function submitForm(){
    console.log('Button Clicked');
    document.myform.submit();

}
</script>

如果我将按钮更改为输入类型,那么从测试中我也只会收到一次提交,而不是两次提交,但是我想确认这是标准行为。 即:

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

如您所链接的答案的注释中所述,事实是, submit仅会以您处理的形式提交数据,而onclick属性将触发您的方法调用,该方法将在内部触发另一个提交。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM