function table(){
 $("#passenger_conetent").each(function(){
    //这里是个循环验证
 }
 //外面是别的验证
}
为什么循环里的验证本来没有通过
可是还是会走到外面的验证我具体的验证方法里提示后面都有返回false的

解决方案 »

  1.   

    function(){ 
        //这里是个循环验证 
    } 是匿名函数,并不代表table的返回!
      

  2.   

    each(callback)
    以每一个匹配的元素作为上下文来执行一个函数。
    意味着,每次执行传递进来的函数时,函数中的this关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素)。 
    而且,在每次执行函数时,都会给函数传递一个表示作为执行环境的元素在匹配的元素集合中所处位置的数字值作为参数(从零开始的整形)。 返回 'false' 将停止循环 (就像在普通的循环中使用 'break')。返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。
    所以,返回false只是结束$("#passenger_conetent").each;程序还是会继续往下执行的。
      

  3.   


    function table(){
      window.b = true;
      $("#passenger_conetent").each(function(){ 
          if(false) window.b = false;   
      } 
      if(!window.b) return false;
      //其他验证
      

  4.   

    $.each()本身就是一个jq的扩展函数, return false时只是跳出这个each函数, 并没有跳出外层函数.解决办法, 设一个状态锁function table(){ 
      var result = true;
      $("#passenger_conetent").each(function(){ 
        //这里是个循环验证
         if(不满足){
           result = false;
          return false;
        }
      }
      
      if(result == false){return false;}
      //外面是别的验证 

    顺带: each里的 return true是跳过此次循环, 执行下个循环