Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JQuery禁用RequiredFieldValidator_Jquery_Asp.net_Validation - Fatal编程技术网

使用JQuery禁用RequiredFieldValidator

使用JQuery禁用RequiredFieldValidator,jquery,asp.net,validation,Jquery,Asp.net,Validation,我使用JQuery根据组合框的选定值隐藏/显示div。这部分很好用。但是,在隐藏div时,jquery函数还应该禁用该div中的3个RequiredFieldValidator。我一直在网上查找,似乎可以通过以下方法轻松完成: ValidatorEnable(ValidatorName, false); 但是当我尝试使用该方法时,没有任何效果,RequiredFieldValidator仍然显示错误,即使div是隐藏的 我的JQuery函数: <script type="text/jav

我使用JQuery根据组合框的选定值隐藏/显示div。这部分很好用。但是,在隐藏div时,jquery函数还应该禁用该div中的3个RequiredFieldValidator。我一直在网上查找,似乎可以通过以下方法轻松完成:

ValidatorEnable(ValidatorName, false);
但是当我尝试使用该方法时,没有任何效果,RequiredFieldValidator仍然显示错误,即使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>

$(文档).ready(函数(){
var det=$(“#赞助商详细信息”);
$(det.hide();
var all=$(“#所有详细信息”);
$(全部).hide();
$(“#”)单击(函数(){
//隐藏社会工作者和赞助商的东西
var值=$(“#选项:选定”).val();
如果(值=“社会工作者”){
//展示社工的东西
$(“#所有细节”)。显示(“慢”);
$(“#赞助商详细信息”).hide(“慢速”);
ValidatorEnable(document.getElementById(“#”)为false);
ValidatorEnable(document.getElementById(“#”)为false);
ValidatorEnable(document.getElementById(“#”)为false);
}否则如果(值=“赞助商”){
//展示赞助商的东西
$(“#所有细节”)。显示(“慢”);
美元(“#赞助商详细信息”)。显示(“慢”);
ValidatorEnable(document.getElementById(“#”)为true);
ValidatorEnable(document.getElementById(“#”)为true);
ValidatorEnable(document.getElementById(“#”)为true);
}
});
});

有人建议我可以使用验证组或自定义验证器,但使用jquery似乎简单得多,但我不知道为什么它不起作用。

您将jquery与简单的javascript混淆了。在简单的javascript中,我们不在元素id前面使用符号
。因此从所有getElementById函数中删除它,它就会工作

比如说

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

您得到的错误是因为您调用了
getElementById
,但没有检查它们的返回,因此使用此函数的返回会导致抛出错误,而该函数无法使用。

您可以使用以下代码段手动启用验证程序,以便再次运行…在Jquery中使用

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

请提供更多关于您所写答案的详细信息。这将有助于其他人清楚地理解它