【问题标题】:Do not fire custom validate on OnChange event of a textbox不要在文本框的 OnChange 事件上触发自定义验证
【发布时间】:2011-12-27 21:38:31
【问题描述】:

我正在使用自定义验证器来验证文本框内容。 每次用户离开此文本框时,都会调用我的客户端脚本,在我的情况下,这有点烦人。

我希望在用户单击给定按钮的按钮时执行验证(这已经发生)。 有什么办法可以避免对TextBoxOnChange事件进行验证?

我的代码在这里:

function isGroupNameUnique(sender, args) {
        var valid = true;

        var tokens = $('#hdnGroupNames').val().split(',');
        var groupName = $('#<%= txtGroupName.ClientID %>').val();

        $.each(tokens, function (i) {
            if (groupName == this)
                valid = false;
        });

        args.IsValid = valid;
    }




<asp:TextBox ID="txtGroupName" runat="server" />

<asp:Button ID="btnAddGroup" runat="server" Text = "Add" onclick="btnAddGroup_Click" class="bGraySmaller" ValidationGroup="AddGroup"/>

<asp:CustomValidator  ID="validatorGroupNameAlreadyExists" runat="server" ControlToValidate="txtGroupName" ErrorMessage="The Group Name has to be unique" ValidationGroup="AddGroup" ClientValidationFunction="isGroupNameUnique" />

【问题讨论】:

  • 我的建议是删除自定义验证器中的“ClientValidationFunction”属性,并为“btnAddGroup”按钮添加一个 jquery 事件处理程序

标签: asp.net validation


【解决方案1】:

删除CustomValidator 上的 ControlToValidate 属性(这是唯一一个不需要此属性的验证器)。在 TextBox 上设置相同的 ValidationGroup。

<asp:TextBox ID="txtGroupName" ValidationGroup="AddGroup" runat="server" />
<asp:CustomValidator  ID="validatorGroupNameAlreadyExists" runat="server" ErrorMessage="The Group Name has to be unique" ValidationGroup="AddGroup" ClientValidationFunction="isGroupNameUnique" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多