我正在使用jQuery验证插件,我写了以下代码,如果不是有效的话,将元素的(< 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>
但是,如果一个字段的内容被更正并变得有效,那么这个工作很好,类显然不会从父进程中删除(实际上,这个错误元素也不会被显示:none; CSS属性).如何检查元素是否有效并删除其父类?
任何帮助将不胜感激 !
已编辑:添加更多信息.
解决方法
经过一些更加沉重的挖掘,我发现答案在我的鼻子下,但不幸的是对我来说,很隐蔽.该插件具有内置的突出显示功能(惊喜,惊喜).通常它会突出显示/取消高亮显示元素,但可以轻松地将其转换为在元素的父项上工作:
$("#form_to_validate").validate({ rules: { ... },element) { error.insertBefore(element.parent().children("br")); },highlight: function(element) { $(element).parent().addClass("error"); },unhighlight: function(element) { $(element).parent().removeClass("error"); } });
我希望这会帮助别人!