jQueryvalidation – 隐藏错误消息

我正在使用jQuery Validation插件,并希望禁用它创建的元素/容器以显示错误“消息”。

基本上,我希望带错误的input元素具有错误类但不创建包含错误消息的附加元素。

这可能吗?

我刚刚想到了一个CSS解决方法,但它并没有真正解决这个元素仍然被创建的事实?

 label.simpleValidationError {display: none !important; }  

将Validator errorPlacement选项与空函数一起使用:

 $("selector").validate({ errorPlacement: function(error, element) {} }); 

这有效地将错误消息放在一边。

您可以将showErrors选项设置为仅执行元素突出显示的函数:

 $("selector").validate({ showErrors: function() { if (this.settings.highlight) { for (var i = 0; this.errorList[i]; ++i) { this.settings.highlight.call(this, this.errorList[i].element, this.settings.errorClass, this.settings.validClass); } } if (this.settings.unhighlight) { for (var i = 0, elements = this.validElements(); elements[i]; ++i) { this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass); } } } }); 

但这很大程度上依赖于validation插件的内部结构,所以它可能不安全。 最好的方法是插件以与defaultShowErrors()相同的方式公开defaultHighlightElements()方法,但事实并非如此。

您也可以使用此代码:

 jQuery.validator.messages.required = ""; $("selector").validate(); 

我还想隐藏错误消息,并在出错时将input字段和textarea变为红色。 这是一个小例子:

http://jsfiddle.net/MFRYm/51/

以及jsfiddle中断时完全正常工作的代码;)

      Demo       
Type invalid email and press Tab key

我也有同样的问题。 我不想要错误消息,只需要注意表单输入的亮点。 这些消息已经是空的,如但仍然在标签后创建了错误元素/容器。

因此,为了快速阻止这种情况发生,我通过注释掉唯一表示label.insertAfter(element);行编辑了jquery.validate.js文件label.insertAfter(element); 绕线697 +/- ..

这只是一个菜鸟的解决方法;)但它做到了!

当我使用CSS来设置jquery validate中的label.valid,label.error样式时,此按钮清除了表单字段中的所有错误和左侧和数据。

   

仅使用CSS的最简单解决方案:

 label.valid { display: none; } 

可能更简单和语义上更好的解决方案是使用css

 label.error { position:absolute; left:20000px; top:0; } input.error { border:red 1px; } 

没有JS需要,更容易管理,有屏幕阅读器的人实际上会有一些迹象表明他们错过了什么

我有一个由另一个validation库开发的项目,我想添加validation库以使用它的function来检查表单是否有效(使用的validation库没有该function)

我的解决方案是:我刚刚通过其CDN添加了validation库

并在点击时使用validationfunction:

 $(document).on('click','#buttonID',function(){ var form = $( "#formID" ); form.validate(); console.log(form.valid()); }); 

并尝试通过添加CSS代码隐藏由jquery validate引发的错误消息:

 label.error{ display: none!important; } 

您可以添加onfocus和onkeyup,以删除错误消息。

 $("selector").validate({ onkeyup: false, onfocusout: false });