jquery 验证插件自定义错误 class 分配给父 div

jquery validate plugin custom error class assigned to parent div

我有一个表单,我正在使用 jQuery validate pluging 进行验证。

这是我的 jQuery 验证代码:

$('#authForm').validate({
                rules: {
                    Email: {
                        required: true,
                        email: true
                    },
                    Password: {
                        required: true
                    },
                    PasswordAgain: {
                        equalTo: "#Password"
                    },
                    Name: {
                        required: true
                    }
                },
                errorClass: "invalid",
                errorPlacement: function(error, element) { }
            });

我添加了一个 errorClass,我需要将其附加到父级 div,而不是输入字段:

其中一个字段的HTML结构是这样的:

<div class="form-group form-group-custom ">
    <label>Email Address</label>
    <input name="Email" type="text" class="form-control invalid" value="test@test.com" aria-required="true" aria-describedby="Email-error" aria-invalid="true">
</div>

如果您注意到“invalid”class 已附加到实际正确的输入元素,但我需要将其附加到我的 <div class="form-group form-group-custom"> 并删除当验证正常时它。

highlight and unhighlight functions are always used to apply/remove any classes when things go valid/invalid. Simply write custom jQuery DOM traversal functions that target your parent div

$('#authForm').validate({
    rules: {
        ....
    },
    ....
    highlight: function(element, errorClass, validClass) {
        $(element).parent('div').addClass(errorClass).removeClass(validClass);
    },
    unhighlight: function(element, errorClass, validClass) {
        $(element).parent('div').addClass(validClass).removeClass(errorClass);
    },
    ....

如果类需要与插件自动应用的类完全分开,那么不要使用代表预设类的关键字,根据需要使用不同的 类 重命名。

    highlight: function(element, errorClass, validClass) {
        $(element).parent('div').addClass('myerrorclass').removeClass('myvalidclass');
    },
    unhighlight: function(element, errorClass, validClass) {
        $(element).parent('div').addClass('myvalidclass').removeClass('myerrorclass');
    },