【问题标题】:errorClass in jquery validate plugin?jquery validate插件中的errorClass?
【发布时间】:2011-06-26 08:38:09
【问题描述】:

我在我的 Web 应用程序中使用 jquery validate 插件来验证表单的空白和其他简单验证。

我正在使用下面的代码为我的表单设置 jquery validate 插件,其中有一个 erroClass 选项,我在其中定义了一个 CSS 类名称 authError,我想将其应用于错误消息,但它适用与 INPUT 框相同的类,我不想在 INPUT 框中应用它,只是想要它作为错误消息。请检查并帮助。谢谢!

$("#frmSignin").validate({
    debug: false,
    errorClass: "authError",
    errorElement: "span",
    rules: {
        username: {
            required: true,
            minlength: 10
        },
        password: {
            required: true  
        }
    },
    messages: {
        username: {
            required: "Please enter your username"
        },
        password: {
            required: "Please enter your password"
        }
    }
});

【问题讨论】:

    标签: javascript jquery validation


    【解决方案1】:

    感谢大家提供的技巧,但我找到了一种更好的方法,即仅使用 jQuery 代码。 validate 插件中有一个highlight 事件,发生错误时会调用该事件以突出显示错误字段,我只是在调用此事件时删除了类表单元素。

    $("#frmSignin").validate({
        debug: false,
        errorClass: "authError",
        errorElement: "span",
        rules: {
            username: {
                required: true,
                minlength: 10
            },
            password: {
                required: true  
            }
        },
        messages: {
            username: {
                required: "Please enter your username"
            },
            password: {
                required: "Please enter your password"
            }
        },
        highlight: function(element, errorClass) {
            $(element).removeClass(errorClass);
        }
    });
    

    【讨论】:

      【解决方案2】:

      您实际上应该只是为 input 和 span 定义不同的类(span,因为 errorElement 设置为 span,否则它将是 label),而不是删除应用的类

      例如

      span.authError {color:red;}

      input.authError {border:1px 点缀红色;}

      而不仅仅是 .authError{} 将同时应用于输入和跨度

      【讨论】:

      • 谢谢,这对我很有帮助。我希望我昨天看到这篇文章!
      【解决方案3】:
          $("#borrowerForm").validate({
              errorElement: 'span',
              errorElementClass: 'input-validation-error',
              errorClass: 'field-validation-error',
              errorPlacement: function(error, element) {},
              highlight: function(element, errorClass, validClass) {
                  $(element).addClass(this.settings.errorElementClass).removeClass(errorClass);
              },
              unhighlight: function(element, errorClass, validClass) {
                  $(element).removeClass(this.settings.errorElementClass).removeClass(errorClass);
              },
              onkeyup: false,
              errorPlacement: function (error, element) { error.insertAfter(element); }
          });
      

      【讨论】:

        【解决方案4】:

        在 jQuery 验证插件中,errorClass 既应用于错误消息元素(通常是 <label>,但在您的情况下为 <span> 应用于已验证元素本身.由于您只想设置错误消息元素的样式,因此您应该编写:

        span.authError {
            // Your error element style.
        }
        

        【讨论】:

          【解决方案5】:

          如果你想为错误信息提供 css。 然后代替使用errorClass定义css规则

          label.error 
          

          【讨论】:

            【解决方案6】:

            检查一下:

            jQuery.validator.messages.required = "";
            $('#frm-contact').validate({
                invalidHandler: function (e, validator) {
                    var errors = validator.numberOfInvalids();
                    if (errors) {
                        var message = errors == 1
                                ? 'You missed 1 field. It has been highlighted below'
                                : 'You missed ' + errors + ' fields.  They have been highlighted below';
                        $("div.error span").html(message);
                        $("div.error").show();
                    } else {
                        $("div.error").hide();
                    }
                },
                onkeyup: false,
                submitHandler: function () {
                    $("div.error").hide();
                    alert("submit! use link below to go to the other step");
                },
                highlight: function (element, required) {
                    $(element).fadeOut(function () {
                        $(element).fadeIn();
                        $(element).css('border', '2px solid #FDADAF');
                    });
                },
                unhighlight: function (element, errorClass, validClass) {
                    $(element).css('border', '1px solid #CCC');
                }
            });
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-10-09
              • 2010-12-18
              • 2013-07-24
              • 1970-01-01
              相关资源
              最近更新 更多