2010-06-11 103 views
0

根據要求,我禁用了服務器端PageLoad事件的頁面中的所有驗證控件。驗證控件未在使用JavaScript在客戶端啓用時進行驗證

點擊提交按鈕我想激活它們並驗證頁面,如果頁面沒問題,請提交其他不明智的提交。

我能夠啓用所有驗證器,但是我無法理解的一件事是他們不驗證頁面。我設置了警報並檢查它們是否已啓用,但它們不驗證頁面並讓頁面提交。

對不起,我不能得到我錯了,我可能需要調用一些驗證方法,或者我應該防止按鈕的默認行爲。請指導我。

下面是我的腳本:

<script type="text/javascript"> 
    function NextClicked() { 

     var _ddlStatus = document.getElementById("<%=ddlEmpStatus.ClientID%>"); 
     var _selectedIndex = _ddlStatus.selectedIndex; 

     if (_selectedIndex == 0) { 
      alert("Nothing selected"); 
     }<br/> 
     else<br/> 
      if (_selectedIndex == 1) { 
      for (i = 0; i < Page_Validators.length; i++) { 
       Page_Validators[i].Enabled = true; 
      } 
     } 

    } 
</script> 
+0

爲什麼你的樣本中有'
'標籤?如果這是直接複製和粘貼,那可能是問題所在。 – Codesleuth 2010-06-11 12:00:01

+0

hi Codesleuth, 不,它不是代碼的一部分,我把它放在這裏用於格式化頁面文章。 – haansi 2010-06-11 12:06:30

回答

1

從服務器中,你必須讓他們按一下按鈕之前,已啓用;否則,我認爲你需要遍歷服務器端集合並啓用它們,並且明確地調用它們的validate()方法。

或者,您也可以嘗試使用客戶端驗證方法(http://forums.asp.net/t/1175267.aspx)來啓用它們。

如果您通過在服務器中設置Enabled = false來禁用,則甚至可以完全使用客戶端API。不知道,只是知道這可能是其他控件的問題。

HTH。

+0

在回發後,我循環遍歷這些驗證器,並調用Validate()方法進行服務器端驗證。但問題在客戶端。 請指教 – haansi 2010-06-11 12:42:09

+0

嘗試鏈接中的validatorEnable()方法;請檢查此客戶端API部分:http://msdn.microsoft.com/en-us/library/aa479045.aspx但是,我不知道,如果您在服務器上設置Enabled =「false」,這將工作;你可能需要讓它在服務器上啓用,並禁用客戶端的頁面加載...不是100%確定的... ... – 2010-06-11 14:06:35

相關問題