return false 的具体是做什么的在这里就不多说了,因为我觉得我形容不明白。。。。。避免大家弄混乱,就不给大家添麻烦了~~
直接上例子:
1、先看看下面一段代码,指出其中的错误所在:
//点击全职列表页删除走接口 $('body').on('click','.qz-teacher-bar-batch .qz-delete', function(event) { var ids=[], continuing = true; $('.qz-lt tr').each(function (index,el){ if($(this).find('.check-box').hasClass('on')){//当前区域被选中 classLessononeToOne if($(this).attr('oneToOne') != 0 || $(this).attr('classLesson') != 0){
layer.msg('已有一对一或班组课的教师不能被删除');
return false;
}else{
ids.push($(this).attr('qzId'));
}
}
});
if(ids.length == 0){ layer.msg('请先选择需要操作的对象',{time:1000}); return false; }
//ajax:
$.ajax({
url: 'XXXXX',//接口地址
type: 'XXX',//请求类型
data: XXX,//参数
traditional: true,
dataType: "JSON",//数据类型
success: function(data){}
});
});
错误的地方就在于:
大家有注意到return false外面有几个括号了吗?就是红色的括号,就是那三个红色的括号。错误就出现在这里,也就是说,return false 的外面有三个括号,但是重点在于return false 只能负责两个括号以内的范围,当超出了这个范围,returnfalse 就不管用了,那returnfalse 不管用的时候怎么办呢?下面就是答案:
2、接下来我们来看改良后的代码
//点击全职列表页删除走接口 $('body').on('click','.qz-teacher-bar-batch .qz-delete', function(event) { var ids=[], continuing = true; $('.qz-lt tr').each(function (index,el){ if($(this).find('.check-box').hasClass('on')){//当前区域被选中 classLessononeToOne if($(this).attr('oneToOne') != 0 || $(this).attr('classLesson') != 0){ continuing = false; }else{ ids.push($(this).attr('qzId')); } } }); if(!continuing){ layer.msg('已有一对一或班组课的教师不能被删除'); return false; } if(ids.length == 0){ layer.msg('请先选择需要操作的对象',{time:1000}); return false; } //ajax: $.ajax({ url: 'XXXXX',//接口地址 type: 'XXX',//请求类型 data: XXX,//参数 traditional: true, dataType: "JSON",//数据类型 success: function(data){} }); });
就是这样~~找到一个中介continuing,这样return false 就能起作用了。