本文主要是介绍js中 onsubmit=submitTest(); 阻止默认事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
<form action="index.jsp" method="post" onsubmit="submitTest();">
<script>
function submitTest(){
if(//做判断){
return true;
}else{
return false;
}
}
</script>
众所周知 οnsubmit="return false"这个表单不会不会被提交,但是onsubmit="submitTest();" 只是执行了submitTest方法,但它没有对返回值进行处理,只有事件的返回值是false时 才会阻止默认事件。所以表单依然会被提交。
只有通过操作submitTest的返回值,才能正确控制表单是否提交。
正确如下 οnsubmit="return submitTest()",
js中onsubmit()是作为方法存在的,js是松散的语言,不像java是强类型语言,它可以有返回值,也可以没有返回值。
转自: http://www.qingdou.me/2854.html
用qwrap进行测试:
W(‘#testa’).click(function(){ return false;});// 这是一个标准的绑定事件方法
ie可以阻止,但标准浏览器 chrome firefox等却直接发生了跳转
因为标准浏览器使用 addEventListener 绑定事件 而该方法是没有返回值的, 没有返回值, 返回值当然不会是false所以继续执行href 。
而ie使用attachEvent的方法这个方法是有returnValue。参见 http://msdn.microsoft.com/en-us/library/ie/aa703898(v=vs.85).aspx
所以成功阻止了默认事件,
那么使用addEventListener绑定事件 如何阻止呢 ?
虽然addEventListener 不能有返回值 但是它有一个方法 preventDefault() 专门用来阻止默认事件
jquery可以例外 只是它悄悄的调用了preventDefault() 和 stopPropagation(),所以在ie和标准浏览器下都可以阻止默认的js事件。
这篇关于js中 onsubmit=submitTest(); 阻止默认事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!