2012-03-06 61 views
4

我正在使用JQuery隱藏/顯示一個div,具體取決於組合框的選定值。這部分工作正常。但是,當隱藏div時,jquery函數也應該禁用那個div中的3個RequiredFieldValidators。我一直在尋找網上,似乎這可以很容易地使用來完成:使用JQuery來禁用RequiredFieldValidators

ValidatorEnable(ValidatorName, false); 

但是當我嘗試使用這種方法,實在不行,在RequiredFieldValidators仍然顯示錯誤,即使DIV是隱藏的。

我的jQuery函數:

<script type="text/javascript"> 
     $(document).ready(function() { 
      var det = $("#SponsorDetails"); 
      $(det).hide(); 
      var all = $("#AllDetails"); 
      $(all).hide(); 

      $("#<%=SelectAccount.ClientID %>").click(function() { 
       //hide social worker and sponsor stuff 
       var value = $("#<%=SelectAccount.ClientID %> option:selected").val(); 
       if (value == "Social_Worker") { 
        //show social worker stuff 
        $("#AllDetails").show("slow"); 
        $("#SponsorDetails").hide("slow"); 
        ValidatorEnable(document.getElementById("#<%=AddressValidator.ClientID %>"), false); 
        ValidatorEnable(document.getElementById("#<%=CityValidator.ClientID %>"), false); 
        ValidatorEnable(document.getElementById("#<%=CountryValidator.ClientID %>"), false); 

       } else if (value == "Sponsor") { 
        //show sponsor stuff 
        $("#AllDetails").show("slow"); 
        $("#SponsorDetails").show("slow"); 
        ValidatorEnable(document.getElementById("#<%=AddressValidator.ClientID %>"), true); 
        ValidatorEnable(document.getElementById("#<%=CityValidator.ClientID %>"), true); 
        ValidatorEnable(document.getElementById("#<%=CountryValidator.ClientID %>"), true); 

       } 
      }); 

     }); 


    </script> 

有人建議我可以使用驗證組或自定義的驗證,但使用jQuery似乎只是簡單得多,但我不知道爲什麼它不會工作。

回答

3

你用簡單的javascript來說服jQuery。在簡單的JavaScript中,我們不使用元素ID前面的符號#。所以刪除它的所有getElementById函數,它會工作。

例如

document.getElementById("<%=CountryValidator.ClientID %>") 

你得到的錯誤是因爲你叫getElementById與就去看看他們的回報,讓您使用本功能,可以不使用的迴歸得到拋出錯誤。

+0

感謝,它的工作! – Matt 2012-03-06 11:03:31

0

您可以再次手動使用下面的代碼,以使驗證器運行... jQuery的

使用
ValidatorEnable($("[id$='RegularExpressionValidator4']")[0], true); 
+0

請提供有關您所寫答案的更多詳細信息。它會幫助別人明白地理解它 – silwar 2017-11-17 12:28:17

+0

它用於手動啓用驗證器再次運行...在Jquery中使用.. – 2017-11-21 05:37:08