我按照Nadia的优秀帖子在这里jQuery覆盖默认验证错误信息显示(Css)Popup/Tooltip之类的它很棒.但我正在处理的表单是通过ajax提交的,表单上方的表格会在成功时更新.表格会随着每次提交而增长,因此表格的位置会在页面上向下滑动.当调用errorPlacement函数时,Nadia的解决方案会出现错误消息.问题是errorPlacement仅在第一次发生错误时被调用.当用户更正错误时,div被隐藏但未被删除.因此,下次验证失败时,validate函数仅替换div包装器的html.结果,绝对位置关闭,因为它是在修改表之前相对于输入计算的.有没有人碰到这个并有一个解决方法?下面是我正在使用的错误放置功能,它直接来自Nadia'
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);
}
Run Code Online (Sandbox Code Playgroud)
不确定你是否遇到过我同样的问题,但我过去使用的一个hacky解决方案是删除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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4130 次 |
最近记录: |