Jquery的each里面return作用

来源:互联网 发布:小米盒子 电视直播软件 编辑:程序博客网 时间:2024/06/05 04:22
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;}





0 0