我试图找出是否存在于数据库中,它总是在第一次尝试时返回
var IsEmailExistinInthemo = true;
function EmailRegVerify(email) {
var url = '/_service/setVerifyProfiles.ashx';
var pars = '&email=' + email;
var target = 'output-div';
var myAjax = new Ajax.Updater(target, url, { method: 'get', parameters: pars,
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
if (response == "True") {
$('errorMsg_Email').show();
$('errorMsg_Email').innerHTML = 'Email address has already been registered with IntheMO';
IsEmailExistinInthemo = false;
}
else {
$('errorMsg_Email').hide();
}
},
oncomplete:function(){
},
onFaliure: function() {
//msg: something went wrong
}
});
return IsEmailExistinInthemo;
}
答案 0 :(得分:0)
AJAX是异步
您的return
语句在服务器回复之前运行。
您不能使用return
声明;你需要回电(如$.ajax
那样)。
答案 1 :(得分:0)
我不确定&在var pars = '&email=' + email;
这个& abit奇怪?
当你像这样使用return IsEmailExistinInthemo;
时,你错了,函数立即返回
true
var IsEmailExistinInthemo = true;
在设置Ajax Update之后,不是Ajax Update按预期返回的值;