【问题标题】:Jquery error messages with ASP.net not working with two validators inside div带有 ASP.net 的 Jquery 错误消息无法与 div 中的两个验证器一起使用
【发布时间】:2012-12-13 09:42:15
【问题描述】:

您好,我有一些 jquery 代码可以检查 asp 验证器是否有 style="display:inline" 如果是这样,我将错误类添加到作为 div 的错误父级。

但是当我有两个验证器时,这不起作用。这是为什么?这是代码

////////// Add Error Class  ////////////////

addErrorClass: function (obj) {


    if ($(obj).parent().find('.errorMessage').parent().css("display") == "inline") {

        $(obj).parent().addClass("error");

    } else {
        $(obj).parent().removeClass("error");
    }


},

////////// Add Error Class /////////////

////////// Validate Form Fields /////////////


ValidateFF: function () {



    $('.required input').blur(function () {


        project.addErrorClass(this);
        if ($(".modal").length) {
            Spacedadi_UI.AdjustRadWindow();
        };

    });


    $('#btnSave').click(function () {

        $('.required input').each(function (index) {

            // Force ASP Validation before click event when using link buttons

            var cErrorID = $(this).parent().find("span").attr('id');
            ValidatorEnable(document.getElementById(cErrorID), true);

            project.addErrorClass(this);

            if ($(".modal").length) {
                project.AdjustRadWindow();
            };
        }); //end of click

        if ($(".modal").length) {
            project.AdjustRadWindow();
        };

    }); // end validate function

},
////////// Validate Form Fields /////////////

HTML 代码

                <div class="field required"><asp:Label ID="lbEmail" runat="server" CssClass="label" Text="Email" AssociatedControlID="tbEmail"></asp:Label>
            <asp:TextBox ID="tbEmail" runat="server"></asp:TextBox>

            <asp:RequiredFieldValidator ID="rfvEmail" runat="server" errorMessage="<span class='errorMessage'>Please enter an email address</span>"
                ControlToValidate="tbEmail" CssClass="" ValidationGroup="ValAddContact"
                Display="Dynamic"></asp:RequiredFieldValidator>

            <asp:RegularExpressionValidator ID="revtbEmail" runat="server" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
                ControlToValidate="tbEmail" errorMessage="<span class='errorMessage'>Invalid Email Format</span>" ValidationGroup="ValAddContact"
                CssClass=""></asp:RegularExpressionValidator>
        </div>

谢谢

【问题讨论】:

    标签: jquery asp.net validation


    【解决方案1】:

    我不太确定 ASP.NET,但是您是否尝试过检查页面上的 HTML 以查看它是否重命名了您所依赖的任何内容?我似乎记得 ASP 重命名元素的 ID 和名称以确保它们是唯一的。

    您也可以尝试使用 .hasClass('errorMessage') 代替 find(...)。

    按钮点击事件是否真正触发?

    【讨论】:

    • 您是否希望在单击按钮时对所有出现的 errorMessage 类进行更改?如果是这样,您可以使用 .each() 函数: $('.errorMessage').each(function() { ... });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 2019-06-10
    • 1970-01-01
    相关资源
    最近更新 更多