JQuery验证errorPlacement成功与失败

时间:2010-02-10 11:03:09

标签: jquery errorplacement

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

我在考虑做这样的事情:

errorPlacement:function(error,element){
*如果验证成功* error.appendTo($( “#对号”)); * 除此以外 * error.appendTo($( “#错误消息”)); }

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

谢谢!

3 个答案:

答案 0 :(得分:0)

过去我通过对有效的validClass选项使用$(".selector").validate({ validClass: "success" }) 来完成此操作:

success

.success { background: url(checkmark.png) right no-repeat; /* Say, 16x16px */ margin-right: 18px; } 可以只是一个带有选中标记背景的css类:

{{1}}

答案 1 :(得分:0)

迟到5个月...希望它仍然有用:

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

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

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

对于您的HTML,您可以放置​​:

<div class="errorparent">
<input type="text" id="username" name="username"/>
<div class="norederrorx errordetails">&nbsp;</div>
</div>

用于在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'

一切顺利!

埃米尔

答案 2 :(得分:0)

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

 this.settings.success( label )

并将其替换为:

 this.settings.success( label, element)

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