2010-10-05 70 views
0

后返回true正确的值,我试图找到wheather在数据的基础上它总是如此的回报存在于第一次尝试始终在第一个调用返回第一个电话

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

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

您不能使用return语句;你需要回调(如$.ajax)。

+0

是否有任何我可以看看的例子... – dsadsad 2010-10-05 02:06:28

0

我不确定&在var pars = '&email=' + email; 这个&是abit奇怪吗?
你错了,当使用return IsEmailExistinInthemo;这样,函数立即返回阿贾克斯更新回报预期

var IsEmailExistinInthemo = true; 

设置阿贾克斯更新后的true,没有价值;

相关问题