Equal_
Equal_
采纳率21.1%
2015-05-14 13:22 阅读 2.2k

用ajax验证用户存在,为什么return true,方法没有结束,还在往下执行??

function isExit(){

var value = $('#testDept').val();   

if(value!=""){
    $.ajax({
        url:"deptIsExit",
        type:"post",
        data:{"deptValue":value},
        success:function(data){
            $('#message').html(data.result.message);
            if(data.result.isExit){
                return true;
            }
        }
    });
}else {
    $('#message').html("不能为空!");
    return false;
}

}

function checkit(){

if(isExit()){
    return true;
}

return false;

}

这个是个form表单,里面的onsubmit,ajax已经传递值,并且比较也正确,正常应该return true,方法就结束了,但是,往下执行了return false。导致我表单一直提交不了!!!这里本人确定值传递进去,并且比较完毕,返回的也是true!!但就是,方法没结束,怎么回事????调试结果是直接全部都执行了!没有跳过中间的return true!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    danielinbiti danielinbiti 2015-05-14 13:24
     $.ajax({
            url:"deptIsExit",
            type:"post",
                    async: false,//设置fale表示ajax同步执行,如果是异步,则success没有执行前就会执行ajax后面的代码
            data:{"deptValue":value},
            success:function(data){
                $('#message').html(data.result.message);
                if(data.result.isExit){
                    return true;
                }
            }
        });
    
    点赞 1 评论 复制链接分享
  • s630405377 slimshadyy 2015-05-15 06:49

    你的isExit是ajax异步的 你直接if(isExit()){}当然会有问题,因为异步方法不会阻塞,不应该同步调用,正确做法应该是在success里做你需要处理的事情 而不是单独调用。

    点赞 1 评论 复制链接分享

相关推荐