Equal_ 2015-05-14 13:22 采纳率: 21.1%
浏览 2271
已采纳

用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 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;
                }
            }
        });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • slimshadyy 2015-05-15 06:49
    关注

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

    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 哈夫曼编码译码器打印树形项目
  • ¥20 求完整顺利登陆QQ邮箱的python代码
  • ¥15 基带到底是什么?为什么手机厂和厂外完全两个概念
  • ¥15 怎么下载MySQL,怎么卸干净原来的MySQL
  • ¥15 网络打印机Ip地址自动获取出现问题
  • ¥15 求局部放电案例库,用于预测局部放电类型
  • ¥100 QT Open62541
  • ¥15 stata合并季度数据和日度数据
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?