从嵌套的jquery函数返回一个值

时间:2012-10-01 10:12:58

标签: jquery

我使用以下代码检查名称是否存在。 但是,我无法获得返回值,无论是真还是假,以便进一步验证。如何从此函数中获取返回值?

function check_availability() //check auction name if exists
        {
        var new_Auction =$('#txtAuction').val();
        $.post('checkAuction.php',{txtAuc:$('#txtAuction').val()},
            function(result){
                if(new_Auction.length==0)
                {
                    $('#message').html('');
                }
                else
                {
                if(result==1)
                {
                    $('#message').html(new_Auction + ' is Available').css('color','#0C3');
                    $('input[id=btnCreate]').removeAttr('Disabled');
                 //$('h4.alert_success').css("display","block");
                 //$('h4.alert_success').html(new_Auction + ' is Available');  
                 //$('h4.alert_success').fadeOut(5000); 
                return true;

                }
                 else
                 {

                    $('#message').html(new_Auction + ' is not Available').css('color','#F00');
                    $('input[id=btnCreate]').attr('Disabled','Disabled');
                    //$('h4.alert_error').css("display","block"); 
                    //$('h4.alert_error').html(new_Auction + ' is not available'); 
                    return false;
                 }
                }
            }
        );
        }

1 个答案:

答案 0 :(得分:0)

AJAX是异步。您无法从回调返回异步调用。将代码依赖于AJAX调用的结果移动到回调内部而不是尝试从它返回。

$.post('checkAuction.php', {txtAuc:$('#txtAuction').val()}, function(result){
    //You cannot return a value from in here!
});

当你发出异步请求时,继续执行下一个语句,因此在一段时间后执行异步回调时,无法控制“返回”。