$('#btnSubmit').click(function(){
$.get('get.php',function(data){
if(data==0){
return false;
}
$.post('member.php',function(data){
 if(data==0){
return false;
}
});
});
}
当第一个return false时,还会继续走到$.post这一步,怎么才可以在get不满足条件时就退出?

解决方案 »

  1.   

    你确认return 了??return了不会执行下面的语句的。$('#btnSubmit').click(function(){
    $.get('get.php',function(data){
    if(data==0){
    alert(data==0)////////////肯定没有执行这句
    return false;
    }
    $.post('member.php',function(data){
     if(data==0){
    return false;
    }
    });
    });
    }
      

  2.   

    肯定有的,弹出框都提示有数据,说明执行到里面了jquery1.71
      

  3.   

    别return false ,直接return ,也不行?
      

  4.   

    if($('#verify').val()==''){
    alert('验证码不能为空');
    return false;
    }

    //验证码
    $.get('index.php?action=member&func=checkVerify&verifyCode='+$('#verify').val(),function(data){
    if(data==0){
    alert('验证码错误');
    return false;
    }
    },'text');
    上面的return false就可退出,下面的就不行,return了还继续执行,跟jquery有关么,也没见报js错误
      

  5.   

    刚本地测试,不管return false 还是return  都是直接蹦到函数最下面,至于为什么你还会执行$.post   。很诡异,我反正是直接蹦出去了
      

  6.   

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
        $.get('1.html', function (data) {
            if (data == 0) {
                alert(data == 0)
                return false;
            }        alert('other');
        });
      
    </script>
    1.html内容就0,根本没有执行alert('other');
      

  7.   

    那就是一个匿名的回调函数,函数return了还能继续执行下面的js语句只能说你的浏览器太强大了。。
      

  8.   

    这样吧 你也不用return了  data不等于0的时候执行后面的代码就可以了  
      

  9.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js'></script>
    </head><body>
    <div id='divId'>sfs</div>
    <script type='text/javascript'>
    $('#divId').click(function(){
        (function(data){
    if(data==0){
    alert(data==0)////////////肯定没有执行这句
    return false;
    }
    alert('l');
    $.post('member.php',function(data){
    if(data==0){
        return false;
    }
    });
    })(0);
    }); 
    </script>
    </body>
    </html>
    应该没返回0吧,我测试了下,return可以,你把if(data==0)变成if(true)试试
      

  10.   

    干嘛那么纠结呢?直接$('#btnSubmit').click(function(){
    $.get('get.php',function(data){
    if(data!=0)
    $.post('member.php',function(data){
     if(data==0){
    return false;
    }
    });
    });
    }不就得了?
      

  11.   

    $.get,$.post都是异步执行的啊,所以不会等第一个ajax执行完后再执行第二个ajax,所以只能嵌套,或者将ajax设置成同步的。
      

  12.   

    $.ajaxSetup({async:false});改成同步的也不行
      

  13.   

    $.get('get.php',function(data){
    if(data!=0){
      $.post('member.php',function(data){
     if(data==0){
      return false;
     }}
    }else{
       return false;
    }