添加工具提示样式错误消息时jquery验证错误放置问题

标签 jquery validation

我在这里关注了 Nadia 的精彩帖子 jQuery override default validation error message display (Css) Popup/Tooltip like而且效果很好。但是我正在处理的表单是通过ajax提交的,成功时会更新表单上方的表格。表格随着每次提交而增长,因此表单的位置在页面上向下滑动。 Nadia 的解决方案在调用 errorPlacement 函数时发布错误消息。问题是 errorPlacement 仅在第一次发生错误时被调用。当用户更正错误时,div 会被隐藏但不会被删除。因此,下次验证失败时,验证函数只会替换 div 包装器的 html。结果,绝对位置被关闭,因为它是相对于表修改之前的输入计算的。有人遇到过这个问题并有解决方法吗?下面是我正在使用的 errorplacement 函数,它直接来自 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);
                }

最佳答案

不确定您是否遇到了与我相同的问题,但我过去使用过的一种巧妙的解决方案是删除 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();
    }

关于添加工具提示样式错误消息时jquery验证错误放置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876872/

相关文章:

linux - xmllint 无法验证 XHTML 1.0 过渡文件

javascript - 禁用基于单选按钮的下拉列表

javascript - 如何在 d3.js 中制作单独的 .js 文件饼图?

jquery - 如何制作拖放对接面板?

jquery - Bootstrap 导航栏不会折叠

javascript - 用于验证输入文本字段的单个 JavaScript 函数

javascript - 如果输入太多数字,如何防止在 AngularJS 中使用 ng-pattern 验证的经过验证的屏蔽美国电话号码无效

r - 按组添加ID列

jquery - 禁用 jQuery UI Datepicker 中除周日之外的所有周日

javascript - 使用 JavaScript 即时验证电子邮件输入