我已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}}
答案 0 :(得分:0)
正如您所链接的答案的评论中所述,事实是submit
只会以您处理的形式提交数据,而onclick
属性会触发您的方法调用,触发在里面另一个提交。
我认为它的行为如下(如果我错了,请随时纠正我):
onclick
值,该值会调用submitForm()
方法。submit
类型第二次提交的。这可以解释为什么你一次看到你的console.log
。您必须在服务器端跟踪结果,以检查文档是否已提交一次或两次。
(如果只有一次,这个答案是完全错误的。)