2012-10-01 85 views
0

我正在使用下面的代碼來檢查名稱是否存在。 但是,我無法獲得返回值是否爲真,以進一步驗證。我怎樣才能從這個函數獲得返回值?從嵌套的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; 
       } 
       } 
      } 
     ); 
     } 

回答

0

AJAX是異步。您不能從回調返回到異步調用。將代碼依賴於該AJAX調用的結果,而不是嘗試從該回調中返回。

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

當你做一個異步請求,繼續執行下一條語句,所以就無處可控制「重返」了一段時間後,當它執行異步回調。

+0

那麼有什麼辦法可以得到驗證與其他jQuery返回功能一起嗎? – user1657720