JQueryvalidationerrorPlacement成功与失败

我正在对表单使用jQuery Validation,我必须在输入字段旁边显示一个复选标记(如果条目是正确的),并在输入字段下面显示错误消息(例如:“请输入至少4个字符”) 。

我在考虑做这样的事情:

errorPlacement:function(error,element){
*如果validation成功* error.appendTo($(“#checkmark”)); *否则* error.appendTo($(“#error-message”)); }

但是,如何根据需要显示的消息类型来定位不同的div目标? 或者我完全错了,还有另一种方法吗?

谢谢!

在过去,我通过对有效的选项使用validClass选项来完成此操作:

 $(".selector").validate({ validClass: "success" }) 

success可以只是一个带有选中标记背景的css类:

 .success { background: url(checkmark.png) right no-repeat; /* Say, 16x16px */ margin-right: 18px; } 

迟了5个月…希望它仍然有用:

jQuery.validate使用errorPlacement:选项传递错误和元素参数,以便您可以使用它们执行任何操作…并且每次在用户的表单中发生错误时,函数都会执行。 它的对应物是success:它将标签作为一种选择。

但为了获得最大的灵活性,您甚至不必使用“标签”。 相反,您可以将errorPlacement中的jQuery对象(基于遍历对象“element”)传递给success:选项。 而且成功也是实时计算的。

有点令人困惑,但这里有一些通用代码……

对于您的HTML,您可以:

 
 

要在jQuery.validate选项下找到自定义div:

 errorPlacement: function(error, element) { var errorcontent=eval(error); errorspotholder = element.parents('.errorparent'); 

在您的成功选项中:

errorspotholder.find('.rederrorx').removeClass('rederrorx').addClass('norederrorx');

如果你想操纵更多的div …比如一个单独的有效标记div,你只需要从’errorsotholder’遍历不同的对象,它引用包含的父div’errorparent’

祝一切顺利!

埃米尔

您可以在jquery.validate.js文件中搜索此表达式:

  this.settings.success( label ) 

并替换为:

  this.settings.success( label, element) 

这个技巧修复了jquery-validate,正如他们在文档中所说的那样。