jQuery AJAX函数返回true或false只返回false,而这一切都很好

jQuery AJAX函数返回true或false只返回false,而这一切都很好,jquery,ajax,Jquery,Ajax,jQuery函数返回true或false,在一切正常时只返回false 我不知道怎么修,也不知道出了什么问题 到目前为止,我得到了以下代码: onclick函数: $(document).on('click', '.founditems', function (e) { var $this = $(this) var k = $this.attr('href'); if (checkUserSystem(k) == true) { alert("good"

jQuery函数返回true或false,在一切正常时只返回false

我不知道怎么修,也不知道出了什么问题

到目前为止,我得到了以下代码:

onclick函数:

$(document).on('click', '.founditems', function (e) {
    var $this = $(this)
    var k = $this.attr('href');
    if (checkUserSystem(k) == true) {
        alert("good");

    } else {
        alert("bad");
    }
});
function checkUserSystem(k) {
    var starttime = $.trim($('#checkusersystemstartime').val());
    var k = k;
    var dataString = 'k=' + k + '&starttime=' + starttime;
    $.ajax({
        type: "POST",
        url: "r.php?proc=sendCp",
        data: dataString,
        dataType: 'json',
        beforeSend: function () {

        },
        complete: function () {

        },
        success: function (data) {

            if (data.message == false) {

                return false;
            } else if (data.cblocked == true) {

                return false;
            } else {

                return true;
            }
        }
    });
    return false;
}
$(document).on('click','.founditems',function(e){

                       var $this=$(this)

                       var k = $this.attr('href');

                       checkUserSystem(k);

 });

function checkUserSystem(k){

    var starttime = $.trim($('#checkusersystemstartime').val());

    var k = k;

    var dataString = 'k='+ k + '&starttime=' + starttime;

    $.ajax({
    type: "POST",
    url: "r.php?proc=sendCp",
    data: dataString, 
    dataType:'json',
    beforeSend: function(){

      },    
    complete:function(){

      },
    success: 
           function(data){

            if(data.message == false){

                  alert("good");

             }else if(data.cblocked == true){

                   alert("good");

                 }else{

                   alert("good");
             }


    }



    });
return false;
} 
ajax功能:

$(document).on('click', '.founditems', function (e) {
    var $this = $(this)
    var k = $this.attr('href');
    if (checkUserSystem(k) == true) {
        alert("good");

    } else {
        alert("bad");
    }
});
function checkUserSystem(k) {
    var starttime = $.trim($('#checkusersystemstartime').val());
    var k = k;
    var dataString = 'k=' + k + '&starttime=' + starttime;
    $.ajax({
        type: "POST",
        url: "r.php?proc=sendCp",
        data: dataString,
        dataType: 'json',
        beforeSend: function () {

        },
        complete: function () {

        },
        success: function (data) {

            if (data.message == false) {

                return false;
            } else if (data.cblocked == true) {

                return false;
            } else {

                return true;
            }
        }
    });
    return false;
}
$(document).on('click','.founditems',function(e){

                       var $this=$(this)

                       var k = $this.attr('href');

                       checkUserSystem(k);

 });

function checkUserSystem(k){

    var starttime = $.trim($('#checkusersystemstartime').val());

    var k = k;

    var dataString = 'k='+ k + '&starttime=' + starttime;

    $.ajax({
    type: "POST",
    url: "r.php?proc=sendCp",
    data: dataString, 
    dataType:'json',
    beforeSend: function(){

      },    
    complete:function(){

      },
    success: 
           function(data){

            if(data.message == false){

                  alert("good");

             }else if(data.cblocked == true){

                   alert("good");

                 }else{

                   alert("good");
             }


    }



    });
return false;
} 
函数在完美运行时总是返回false,PHP返回true, 如果我删除返回错误;在ajax代码的末尾,它将返回undefined而不是true,有什么想法吗


谢谢。

您也可以像这样使用成功部分

function (data) {
    if (data.message) {
        return true;
    } else if (data.cblocked) {
        return false;
    } else {
        return false;
    }
}

您必须仔细阅读异步执行。成功块在ajax调用“完成”时运行,但代码的执行将在$.ajax()调用后立即继续

出现未定义错误的原因是,除非您添加“return false”调用,否则该方法不会返回任何内容

您可以将警报真/假部分作为函数参数,也可以查看 在ajax调用的同步版本中。

您不能使用“if(checkUserSystem(k)==true)”,因为您的ajax请求是异步请求。 意思是 在ajax请求完成之前,checkUserSystem函数始终会返回“false”

我认为,如果您必须在ajax请求完成后执行某些操作,您应该在ajax.success函数中执行:

$(document).on('click', '.founditems', function (e) {
    var $this = $(this)
    var k = $this.attr('href');
    if (checkUserSystem(k) == true) {
        alert("good");

    } else {
        alert("bad");
    }
});
function checkUserSystem(k) {
    var starttime = $.trim($('#checkusersystemstartime').val());
    var k = k;
    var dataString = 'k=' + k + '&starttime=' + starttime;
    $.ajax({
        type: "POST",
        url: "r.php?proc=sendCp",
        data: dataString,
        dataType: 'json',
        beforeSend: function () {

        },
        complete: function () {

        },
        success: function (data) {

            if (data.message == false) {

                return false;
            } else if (data.cblocked == true) {

                return false;
            } else {

                return true;
            }
        }
    });
    return false;
}
$(document).on('click','.founditems',function(e){

                       var $this=$(this)

                       var k = $this.attr('href');

                       checkUserSystem(k);

 });

function checkUserSystem(k){

    var starttime = $.trim($('#checkusersystemstartime').val());

    var k = k;

    var dataString = 'k='+ k + '&starttime=' + starttime;

    $.ajax({
    type: "POST",
    url: "r.php?proc=sendCp",
    data: dataString, 
    dataType:'json',
    beforeSend: function(){

      },    
    complete:function(){

      },
    success: 
           function(data){

            if(data.message == false){

                  alert("good");

             }else if(data.cblocked == true){

                   alert("good");

                 }else{

                   alert("good");
             }


    }



    });
return false;
} 

console.log(数据)返回什么?可能是“false”而不是false?是的,如果没有javascript checkdata,函数工作得很好,因为它必须是一个对象。要包含data.message、data.cblock等,谢谢您提供更多信息?这里有一些参考资料。很抱歉,其他人已经在很大程度上描述了这一点。明确地说,我真的建议您考虑继续使用异步版本的解决方案(例如,在成功时传递要执行的方法)。异步执行是一件好事(在等待服务器时不会阻塞),因此选择同步版本应该有更好的理由,您必须仔细考虑:)