使用errorPlacement挂钩我可以将某个类添加到某个错误元素。然而,一旦形式第二次提交,它就会失去我添加的课程。该示例请参阅以下代码。jQuery验证插件添加类errorPlacement错误标签
http://www.jsfiddle.net/NU63P/1
我怎能附加类的元素通过验证过程的整个生命周期?是否有另一个钩子,我需要添加类回来?最终,我试图完成的是我想添加一个特定的类到第二个文本框错误标签。
使用errorPlacement挂钩我可以将某个类添加到某个错误元素。然而,一旦形式第二次提交,它就会失去我添加的课程。该示例请参阅以下代码。jQuery验证插件添加类errorPlacement错误标签
http://www.jsfiddle.net/NU63P/1
我怎能附加类的元素通过验证过程的整个生命周期?是否有另一个钩子,我需要添加类回来?最终,我试图完成的是我想添加一个特定的类到第二个文本框错误标签。
不幸的是有没有做到这一点通过API提供的,因为它使(在我看来)一个错误的决定在这里一个直接的方式:
showLabel: function(element, message) {
var label = this.errorsFor(element);
if (label.length) {
label.removeClass().addClass(this.settings.errorClass);
//^ right here
}
这是何等的移除所有的类,不幸的是它的也是在无效处理程序管道中运行的最后一件事。 然而,它是由defaultShowErrors()
叫,你可以通过重写showErrors
选项,像这样自称:
$(function() {
$('form').validate({
showErrors: function(errorMap, errorList) {
this.defaultShowErrors();
$(this.currentForm).find('label[for=text2].error').addClass('errorextra');
}
});
});
另一种选择,如果你只支持新的浏览器将在CSS中完全做到这一点:
label[for=text2].error { margin-left: 10px; }
完美!谢谢!
我正在使用编辑器(ckeditor)。在$(“#form1”)中添加这个添加项。validate现在我可以隐藏生成的错误消息,如果在编辑器中输入了内容。
这里我的代码的相关部分... HTH的人......对KEYUP
updateTextArea1
CKEDITOR.instances.editor1.on("instanceReady", function()
{
//set keyup event
this.document.on("keyup", updateTextArea1);
//and paste event
this.document.on("paste", updateTextArea1);
});
得到editor1的数据,更新编辑器和隐藏错误消息
function updateTextArea1()
{
CKEDITOR.tools.setTimeout(function()
{
var oEditor1 = CKEDITOR.instances.editor1;
var content1 = oEditor1.getData();
CKEDITOR.instances.editor1.updateElement();
$(".error.errorextra1").hide()
}, 0);
}
将附加类添加到jquery验证器生成的错误消息中
var validator = $("#form1").validate({
showErrors: function(errorMap, errorList) {
this.defaultShowErrors();
$(this.currentForm).find('label[for=editor1].error').addClass('errorextra1');
$(this.currentForm).find('label[for=editor2].error').addClass('errorextra2');
},
正是我在寻找的感谢之手 – aherrick 2010-10-24 13:32:37