Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
249 views
in Technique[技术] by (71.8m points)

javascript - Always return true in first call Returns correct value after first call

I am trying to find wheather exists in data base it always true returns on first attempt

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;
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

AJAX is asynchronous.
Your return statement runs before the server replies.

You cannot use a return statement; you need to take a callback (like $.ajax does).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...