始终在第一次调用时返回true在第一次调用后返回正确的值

时间:2010-10-05 01:51:23

标签: javascript

我试图找出是否存在于数据库中,它总是在第一次尝试时返回

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;
}

2 个答案:

答案 0 :(得分:0)

AJAX是异步 您的return语句在服务器回复之前运行。

您不能使用return声明;你需要回电(如$.ajax那样)。

答案 1 :(得分:0)

我不确定&在var pars = '&email=' + email; 这个& abit奇怪?
当你像这样使用return IsEmailExistinInthemo;时,你错了,函数立即返回

true
var IsEmailExistinInthemo = true;

在设置Ajax Update之后,不是Ajax Update按预期返回的值;