在 DOM 中各种 return false 无效的解决方案

  首先我们会遇到这样的问题,在Form表单中禁止提交过去,通过Ajax来请求,一般的做法有下面两种。

  第一种是直接写在onsubmit属性中:


<form onsubmit="return false;">
.....
</form>

  第二种是通过事件的方式:


<form id="Form">
.....
</form>
<script>
$("#Form").bind("submit",function(event){
  return false;
});
</script>

  实际上第二种方式并没有任何效果,问题出在什么地方呢?我的猜测是这样的,因为事件可以连续调用,导致操作已经继续了,所以返回false并不能解决实际问题,这就需要将事件的动作给取消。

  因此需要通过其他方式解决,可以发现我们在绑定事件时,其实是有事件对象进来的,也就是当前事件是可以控制的,那么方案来了:


<script>
$("#Form").bind("submit",function(event){
  event.preventDefault();//Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)
  return false;
});
</script>

  解决的方案就在于even对象的preventDefault()方法,细节请自行补脑。

8条评论在“在 DOM 中各种 return false 无效的解决方案”

写下你最简单的想法