使用$ .ajax()后为布尔值赋值

时间:2014-08-05 16:07:25

标签: ajax

我已编写此Javascript代码以在注册表单上验证我的电子邮件地址;但是在使用$ .ajax()之后,函数的返回值不正确(我假设返回的值等于'false',但如果执行了ajax成功例程,它将是'true')!!你可以帮我一把吗?

function validate_email(valID,displayID)
{
var email_format = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var email = valID.val();
var return_status = true;

if(email == "")
{
        displayID.append('\u26A0'+' ');
        displayID.append('msg1');
        return_status = false;
} 
else if(!email_format.test(email))
{
        displayID.append('\u26A0'+' ');
        displayID.append('msg2');
        return_status = false;
}
else
{
    //Checks for email uniquness in the DB
    var str_temp=valID.val().toLowerCase();
    var data="email="+str_temp.trim();

    $.ajax({                                      
        type: "POST",
        url: 'php_routines/ajax_email_validator.php',   
        data: data,                  
        success: function(results)          
        {
            if (results==1)
            {
                displayID.append('\u26A0');
                displayID.append('msg3');
                return_status = false;                          
            }
        }
    });
}
return return_status;   

}

1 个答案:

答案 0 :(得分:0)

原来这是一个异步请求。

在您的 $。ajax 完成任务之前,您似乎正在返回 return_status

您应该使用promises来修复它或使用回调。

干杯,