2015-11-24 151 views
0
function checkEmailValid(email,result) 
    { 
     if(email.val()==""){ 
      result.text("이메일을 입력하십시요."); 
      return false; 
     } 
     else{ 
      var re_mail = /^([\w\.-]+)@([a-z\d\.-]+)\.([a-z\.]{2,6})$/; 
      if(re_mail.test(email.val())){ 
       var res = false; 
       $.ajax({ 
        type:"GET", 
        url: "http://127.0.0.1:3000/auth/checkemail/"+email.val(), 
        timeout: 2000, 
        beforeSend: function(){ 
         result.text("이메일 확인 중..."); 
        }, 
        complete: function(jqXHR){ 
         if(jqXHR.status==202){ 
          res = true; 

         }else{ 
          result.text("이미 등록된 이메일입니다."); 
          res = false;  
         } 
        }, 
        success:function(data,textStatus,jqXHR){ 

        }, 
        fail: function(){ 

        }      
       }); 
       alert("step2 : " + res); ////////Here is Step2!!! 
       alert("step3 : " + res); ///////Here is Step3!!! 
       return res; 

      }else{ 
       result.text("이메일 형식이 올바르지 않습니다."); 
       return false; 
      } 
     } 
    } 

以上功能是電子郵件驗證:我不知道爲什麼相同的值是不正確的

如果電子郵件是有效的函數將返回true,但第二步的奇怪的是資源是假的而RES第三步是真實的。發生什麼事?

步驟2的值:

enter image description here

第3步值:

enter image description here

回答

0

我不會建議你爲 「異步」 設置爲false, 因爲這是一個不好的做法,但你可以使用回調函數在真實條件下執行你的任務

我會升講解

首先是添加其他參數的函數一樣

function checkEmailValid(email,result,SuccessCallback) 

,並創建將執行的任務的功能,當阿賈克斯迴歸真實

function EmailIdIsUnique() 
{ 
    //perform your code here 
} 

和在ajax中調用此回調函數

complete: function(jqXHR){ 
         if(jqXHR.status==202){ 
         //run your code here 
          if ($.isFunction(SuccessCallback)) 
          { 
          result = successcallback.call(this);       
          } 
         }else{ 
          result.text("이미 등록된 이메일입니다."); 
          res = false;  
         } 
        }, 
相關問題