2010-08-17 93 views
0

我試圖做一個錨標記導致客戶端和服務器驗證。我有這樣的代碼現在:錨定標記驗證

$(document).ready(function() { 

       $('div#imgEmailVerifyLoader').hide(); 

       $('a#btn_SubmitContactMessage').click(function() 
       { 
        if (Page_ClientValidate()) // this will trigger all validators on page 
        { 
         $('div#imgEmailVerifyLoader').show('slow'); 
         window.Form_OnMasterPage.submit(); 
         return true; 
        } 
        else 
        { 
         return false; 
        } 

       }); 

      }); 

<a id="btn_SubmitContactMessage" href="Contact.aspx" onclick="Validate();" runat="server">SUBMIT</a> 

這正確執行客戶端驗證,並顯示錯誤消息。我對頁面上的每個文本框都有驗證控件。我在代碼中還加入了服務器Click事件處理程序背後的:

btn_SubmitContactMessage.ServerClick +=new EventHandler(btn_SubmitContactMessage_ServerClick); 


     } 

     protected void btn_SubmitContactMessage_ServerClick(object sender, EventArgs e) 
     { 
      if (!Page.IsValid) 
      { 

       RequiredFieldValidator4.ErrorMessage = "show"; 
       return; 
      } 
     } 

但是當我嘗試通過關閉JavaScript中的鏈接(提交)來測試它不回發。爲什麼會發生?

現在,我該如何確保在服務器端進行驗證後回發。

回答

0

我想這是因爲'onclick = validate()'。你應該在'$(document).ready(function()'中註冊這個事件,就像你有其他的JavaScript一樣。這樣,如果JavaScript不可用,那麼表單通常會被提交,並且你的服務器端驗證會踢英寸