关于按钮绑定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>

最后

十分感谢原博主,原博客的地址为:

可参考的博客的地址为:

posted @ 2021-01-28 23:18  DAmarkday  阅读(711)  评论(0编辑  收藏  举报