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

时间:2016-05-29 21:26:33

标签: jquery jquery-validate

我有一个表单,我用jQuery验证插件验证。

这是我用于验证的jQuery代码:

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

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

其中一个字段的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>

如果您注意到&#34; invalid&#34; class已被附加到实际上正确的input元素,但是我需要将它附加到我的<div class="form-group form-group-custom">并在验证完成时删除它。

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

当事情有效/无效时,highlightunhighlight函数总是用于应用/删除任何类。只需编写target your parent div的自定义jQuery DOM遍历函数。

$('#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');
    },