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,正如他们在文档中所说的那样。