下拉列表文本框必需字段验证器错误

时间:2014-07-10 09:31:21

标签: javascript asp.net

我有一个下拉列表,其中包含哪些值来自DB。有一个选项名称OTHER,当我选择其他文本框时出现。对于那个Textbox,我已经制作了一个必填字段验证器。直到这里它工作正常。但是当我选择任何其他选项时,它仍然会给我验证器错误。它不应该发生。当用户没有填写选择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代码,当用户从下拉列表中选择并取消选择OTHER选项时显示文本框: -

<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();
            }
        });

1 个答案:

答案 0 :(得分:0)

只有在文本框可见时才需要启用必填字段验证器,当您显示文本框时,需要在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); 
            }
        });