我使用以下代码检查名称是否存在。 但是,我无法获得返回值,无论是真还是假,以便进一步验证。如何从此函数中获取返回值?
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 :(得分:0)
AJAX是异步。您无法从回调返回异步调用。将代码依赖于AJAX调用的结果移动到回调内部而不是尝试从它返回。
$.post('checkAuction.php', {txtAuc:$('#txtAuction').val()}, function(result){
//You cannot return a value from in here!
});
当你发出异步请求时,继续执行下一个语句,因此在一段时间后执行异步回调时,无法控制“返回”。