function submitOpenAcount(){
var platIdVal = "";
var selectSum = 0;
var $checkedSelections = $('input[name="orderListInfo"]:checked');//获取所有选中的checkbox
$.each($checkedSelections,function(i,n){
platIdVal = $checkedSelections.eq(i).parents('tr').find('select').val();
if(platIdVal == ""){
alert("对不起,请您选择选中信息对应的受理渠道!");
return;
}
if (selectSum==0) {
crm_olid += $checkedSelections.eq(i).val()+":"+platIdVal;
}else{
crm_olid += "," + $checkedSelections.eq(i).val()+":"+platIdVal;
}
selectSum=selectSum+1;
});
$.ajax({
type: "POST",
......
});
}
if(platIdVal == ""){
alert("对不起,请您选择选中信息对应的受理渠道!");
return;
}
本意是想alert信息之后不让程序继续执行,但是点完alert的确定后继续执行ajax,百度了下才知道,原来在each代码块中
return false = break
return ture = continue
在each里使用 return 给整个函数返回时,其实只是跳出each循环而已
解决办法:通过try捕捉throw出来的错误,达到退出each、并返回错误的目标!
try{
$.each($checkedSelections,function(i,n){
platIdVal = $checkedSelections.eq(i).parents('tr').find('select').val();
if(platIdVal == ""){
throw "对不起,请您选择选中信息对应的受理渠道!";
return;
}
if (selectSum==0) {
crm_olid += $checkedSelections.eq(i).val()+":"+platIdVal;
}else{
crm_olid += "," + $checkedSelections.eq(i).val()+":"+platIdVal;
}
selectSum=selectSum+1;
});
}catch(e){
alert(e);
return;
}