我已编写此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;
}
答案 0 :(得分:0)
原来这是一个异步请求。
在您的 $。ajax 完成任务之前,您似乎正在返回 return_status 。
您应该使用promises来修复它或使用回调。
干杯,