14

我正在使用 jQuery Validation 插件,我编写了以下代码,如果无效,它将向元素的 ( <input>) 父级 ( ) 添加一个类,并在.<label><span><br>

的HTML ...

<label>
    text<br><input>
</label>

...和jQuery。

$("#form_to_validate").validate({
    rules: {
    ...
    },
    errorElement: "span",
    errorPlacement: function(error, element) {
        element.parent().addClass('error');
        error.insertBefore(element.parent().children("br"));
    }
});

所以,如果一个表单元素没有通过验证,它会变成:

<label class="error">
    text<span>error text</span><br><input>
</label>

这很好用,但是,如果一个字段的内容被更正并变为有效,则该类显然不会从其父级中删除(实际上,错误元素也没有,它只是获取一个display: none;CSS 属性)。如何检查元素是否有效并删除其父类?

任何帮助将不胜感激 !


已编辑:添加了更多信息。

4

2 回答 2

30

经过一些更重的挖掘后,我在鼻子底下找到了答案,但不幸的是,对我来说,隐藏得很好。该插件内置高亮功能(惊喜、惊喜)。通常它会突出显示/取消突出显示元素,但它可以很容易地转换为在元素的父级上工作:

$("#form_to_validate").validate({
    rules: {
    ...
    },
    errorElement: "span",
    errorPlacement: function(error, element) {
        error.insertBefore(element.parent().children("br"));
    },
    highlight: function(element) {
        $(element).parent().addClass("error");
    },
    unhighlight: function(element) {
        $(element).parent().removeClass("error");
    }
});

我希望这会对某人有所帮助!

于 2010-03-24T05:13:22.287 回答
0

errorElement: 'none'为我工作。

于 2010-09-18T13:53:51.587 回答