Javascript 下拉列表文本框必需字段验证程序错误

Javascript 下拉列表文本框必需字段验证程序错误,javascript,asp.net,Javascript,Asp.net,我有一个下拉列表,其中的值来自DB。有一个选项名OTHER,当我选择OTHER时,文本框出现。对于这个文本框,我制作了一个必需的字段验证器。在这里,一切正常。但当我选择任何其他选项时,它仍然会给我验证器错误。这不应该发生。只有当用户在选择其他选项时没有填写文本框时,它才会给我必需的字段错误。请看代码 下拉列表和文本框代码:- <asp:DropDownList ID="ddlGraduation" runat="server" CssClass="txtfld-popup_drp">

我有一个下拉列表,其中的值来自DB。有一个选项名OTHER,当我选择OTHER时,文本框出现。对于这个文本框,我制作了一个必需的字段验证器。在这里,一切正常。但当我选择任何其他选项时,它仍然会给我验证器错误。这不应该发生。只有当用户在选择其他选项时没有填写文本框时,它才会给我必需的字段错误。请看代码

下拉列表和文本框代码:-

<asp:DropDownList ID="ddlGraduation" runat="server" CssClass="txtfld-popup_drp"></asp:DropDownList>

 <asp:RequiredFieldValidator CssClass="error_msg" ID="reqGraduation" runat="server" ControlToValidate="ddlGraduation" ErrorMessage="Please select graduation details" InitialValue="--Select--" SetFocusOnError="true"></asp:RequiredFieldValidator>



<asp:TextBox ID="txtOther" runat="server" CssClass="txtfld-popup_p"></asp:TextBox>                                                                                


<asp:RequiredFieldValidator ID="reqOther" runat="server" ControlToValidate="txtOther" ErrorMessage="Please specify your qualification"></asp:RequiredFieldValidator>
用于在用户从下拉列表中选择和取消选择其他选项时隐藏和显示文本框的JS代码:-

<script type="text/javascript">
    function pageLoad() {
        $('#ctl00_ContentPlaceHolder1_txtOther').hide();
        $('#ctl00_ContentPlaceHolder1_ddlGraduation').change(function () {
            if ($(this).val() === "Other") {
                $('#ctl00_ContentPlaceHolder1_txtOther').show();
                // $("#ctl00_ContentPlaceHolder1_ddlGraduation").hide();
            } else {
                $('#ctl00_ContentPlaceHolder1_txtOther').hide();
            }
        });

只有当文本框可见时,您才需要启用所需的字段验证器。当您显示文本框时,您需要在javascriot函数中写下以下代码行:

ValidatorEnable(document.getElementById("reqGraduation"), true); 
您的javascript代码应该如下所示:

function pageLoad() {
        $('#ctl00_ContentPlaceHolder1_txtOther').hide();
        $('#ctl00_ContentPlaceHolder1_ddlGraduation').change(function () {
            if ($(this).val() === "Other") {
                $('#ctl00_ContentPlaceHolder1_txtOther').show();

               ValidatorEnable(document.getElementById("reqGraduation"), true); 
                // $("#ctl00_ContentPlaceHolder1_ddlGraduation").hide();
            } else {
                $('#ctl00_ContentPlaceHolder1_txtOther').hide();

                ValidatorEnable(document.getElementById("reqGraduation"), false); 
            }
        });

应该为隐藏控件禁用RequiredFieldValidator。可能重复?我应该在哪里写入ValidatorEnabledocument.GetElementByIdReqGradication,true??它在javascript页面加载函数中吗?在客户端的javascript中..我已经修改了你的javascriopt函数,请给我一个js提琴,因为我隐藏的文本框代码也不起作用。请我试过了,我想你的代码可以满足我的要求。只是需要一个JS小提琴它不工作,它仍然给我验证错误,请指定您的资格。请看我的小提琴