关于按钮绑定click和submit冲突问题(转载)
介绍
一个提交按钮先后被绑定两个事件函数f1,f2相先后顺序是先执行f1,然后f2。先要在f1中加入判断来决定支不执行f2,如果两个都是绑定的click事件,则第一个函数中返回false,f2还是会执行,如果第一个是click,第二个是submit则f2不会执行
<body>
<form>
<button id='b1'>提交</button>
</form>
</body>
<script>
var b=document.getElementById("b1");
b.addEventListener("click",function(event){alert(1);})
b.addEventListener("submit",function(){return false;alert(2)})
</script>
submit事件不会被执行
原理
原理:表单中的submit按钮的click事件优先于表单form的submit事件,表单submit事件的执行依据submit按钮的返回值来判断是否继续需要执行submit事件。表单的submit事件中return false也可以阻止表单的提交,而不一定依靠onsubmit事件返回false来阻止表单的提交。
当submit的click事件返回false时,不会执行form表单的submit事件,返回非false值或者没有return语句返回内容都才会执行表单的submit事件
<form action="1.php" method="get">
<input id="b2" type="submit">
</form>
<script>
$("#b2").click(function(){
alert("b2click");
return false;
})
$("form").on("submit",function(){
alert("b2submit");
})
</script>
最后
十分感谢原博主,原博客的地址为:
可参考的博客的地址为: