【问题标题】:Dropdown list textbox required field validator error下拉列表文本框必填字段验证器错误
【发布时间】:2014-07-10 09:31:20
【问题描述】:

我有一个来自数据库的值的下拉列表。有一个选项名称 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();
            }
        });

【问题讨论】:

标签: javascript asp.net


【解决方案1】:

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

【讨论】:

  • 我应该在哪里写 ValidatorEnable(document.getElementById("reqGraduation"), true); ??它在javascript页面加载功能中吗?
  • 在客户端的 Javascript 中..我已经修改了你的 javascriopt 函数,请检查
  • 你能给我一个js小提琴吗,因为我隐藏的文本框代码也不起作用。请 。我试过了,我认为你的代码可以满足我的要求。只需要一个 JS 小提琴
  • 它不起作用,它仍然给我验证错误,“请指定您的资格。”请看我的 js fiddle jsfiddle.net/257mc
猜你喜欢
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2011-07-15
  • 2015-02-20
相关资源
最近更新 更多