2013-01-24 23 views
0

可能重複:
How to return the response from an AJAX call from a function?需要幫助的阿賈克斯與jQuery

我創建的電子郵件ID和密碼的註冊頁面。我在註冊頁面中調用了onsubmit事件,該事件調用了寫在common.js文件中的checkData()函數。我有一個ajax函數來檢查電子郵件ID是否存在於數據庫中?但我的問題是,當我完成檢查我的ajax函數完成後保持警報消息正常工作,但如果警報被刪除,它將數據輸入到數據庫中。這裏是阿賈克斯的代碼

else 
    { 
     $(function() { 

       $.ajax({ 
        url : 'RegCheck.php', 
        type : 'POST', 
        data : 'User=' + address, 
        success : function(result){ 
         if(result != "No") 
         { 
          document.getElementById("EmailChk").innerHTML = result;  
          Valid = false; 

         } 
        } 

       });    


     });       
     document.getElementById("MailMand").innerHTML = "" ; 

    }  
    alert(Valid); 
    return Valid; 
+0

需要在您的'RegCheck.php'文件中看到以及如何使用'Valid = false;'功能... –

+0

RegCheck.php is <?php require(「Connect.php」); $ Data = $ _POST ['User']; $ Qry =「從UserMst中選擇用戶名,其中UserName ='$ Data'」; $ Result = mysql_query($ Qry)或死(「用戶檢查失敗」); $ Final = mysql_numrows($ Result); if($ Final> 0) { echo「已經註冊」; } else { echo「No」; } ?> –

回答

1

ajax不會那樣工作。代碼將執行之後,return Valid代碼的99.9%的時間(如果不是100%的時間)。你不能保證success將被調用。

取而代之,您需要在ajax回調或(不寒而慄)中完成所有工作,使其同步。

因此,如果您依賴於驗證,則需要停止提交表單,然後在success方法中提交表單。

+0

但當我在完成ajax後發出警告消息時,我的結果顯示爲已註冊的電子郵件,但如果我刪除了警報消息,它就會觸發我的插入查詢 –