【问题标题】:Disabled required validator still causes validation禁用所需的验证器仍然会导致验证
【发布时间】:2017-04-20 10:51:41
【问题描述】:

我在 jquery 中使用 validatorEnable(也尝试使用 .Enabled)设置为 false 禁用验证器,错误消息消失,但该表单仍然对该验证器无效。

HTML:

<tr>
    <td class="text-right" style="width: 574px">
<asp:Label ID="usernameLabel" runat="server" Text="Username: "></asp:Label>
    </td>
    <td style="width: 181px">
<asp:TextBox ID="usernameTxt" runat="server"></asp:TextBox>
    </td>
    <td>
        <asp:RequiredFieldValidator ID="usernameRequiredValidator" runat="server" ControlToValidate="usernameTxt" ErrorMessage="Username is required."></asp:RequiredFieldValidator>
        <br />
        <asp:CustomValidator ID="usernameExistsValidator" runat="server" ControlToValidate="usernameTxt" ErrorMessage="This username already exists." OnServerValidate="usernameExistsValidator_ServerValidate"></asp:CustomValidator>
    </td>
</tr>

下面的行禁用验证器,错误消息消失。

ValidatorEnable($("[id*=usernameExistsValidator]")[0], false);

检查以确保哪个验证器无效:

foreach (BaseValidator validator in Page.Validators)
            {
                if (validator.Enabled && !validator.IsValid)
                {
                    // Put a breakpoint here
                    string clientID = validator.ClientID;
                    System.Diagnostics.Debug.WriteLine(clientID + "is invalid.");
                }
            }

【问题讨论】:

    标签: javascript jquery asp.net .net validation


    【解决方案1】:

    ValidatorEnable 函数仅禁用客户端的验证器。您用于“检查以确保哪个验证器无效”的代码正在检查服务器端的验证器。

    无论您使用什么条件来禁用客户端验证器,您都需要在运行验证例程之前在服务器端重新创建它。例如,如果您正在调用

    //Disable validator if user name textbox is empty
    ValidatorEnable($("[id*=usernameExistsValidator]")[0], $("#usernameTxt").val().length > 0);
    

    那么在服务器端你应该写

    //Disable validator if user name textbox is empty
    this.usernameExistsValidator.Enabled = (this.usernameTxt.Text.Length > 0) 
    

    ...在执行验证之前。

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 2019-04-13
      • 2011-11-15
      • 2017-07-08
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多