2012-03-06 59 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