jQuery验证errorPlacement问题时,添加工具提示样式错误信息
问题描述:
我跟着Nadia在这里jQuery override default validation error message display (Css) Popup/Tooltip like优秀的职位,它的工作很棒。但是我正在处理的表单通过ajax提交,表单上方的表格在成功时更新表格随着每次提交而增长,并且表单的位置在页面上滑落。 Nadia的解决方案在调用errorPlacement函数时提供了错误消息。问题是errorPlacement仅在第一次发生错误时被调用。当用户纠正错误时,div被隐藏但不被移除。所以下一次验证失败时,validate函数只会替换div包装器的html。因此绝对位置是关闭的,因为它是在表被修改之前相对于输入计算的。有没有人遇到这个问题,并有一个解决方法?下面是我正在使用的错误位置函数,它是直接在链接文章中使用Nadia的解决方案。jQuery验证errorPlacement问题时,添加工具提示样式错误信息
errorPlacement: function(error, element) {
offset = element.offset();
error.insertBefore(element)
error.addClass('message'); // add a class to the wrapper
error.css('position', 'absolute');
error.css('left', offset.left + element.outerWidth());
error.css('top', offset.top);
}
答
不知道,如果你正面临着同样的问题我有或没有,但一个哈克解决方案,我在过去使用是消除在showErrors事件处理程序中的错误。这迫使jQuery.Validate再次为每个错误调用errorPlacement。
showErrors: function (errorMap, errorList) {
for (var i = 0; errorList[i]; i++) {
var element = this.errorList[i].element;
this.errorsFor(element).remove();
}
this.defaultShowErrors();
}
是的,这是诀窍。谢谢! – 2010-10-08 13:59:54
我错过了每次触发验证时都会调用的方法。这个解决方法使我的一天。太好了!谢谢! – metamagicson 2013-12-03 10:43:06