2

我正在使用JQuery 验证插件

如果可以将错误放在正在验证的 FORM 元素之外,我会徘徊。我想将所有错误标签放在 DOM 的底部并将它们更改为绝对位置。我试过这样的事情:

errorPlacement: function(error, element) {
    var position = element.offset();
        error.appendTo('body');           // put the error label before end of <body>
        error.css('position', 'absolute');
        error.css('left', position.left + element.innerWidth());
        error.css('top', position.top);
        error.addClass('error-message'); // add a class to the wrapper

这做了什么 - 如果您在输入中输入一些无效数据,错误标签显示正常,但是在您输入有效数据后,标签不会被删除。(我猜由于错误标签不是表单元素的子元素,因此验证插件根本找不到它)

为什么我需要它?
这是因为我有大量不同的客户端站点,它们具有不同的 HTML 布局和设计。有时表单位于宽度较小的 DIV 中,并且错误标签不适合该 div。我看到的唯一解决方案是将错误标签放在 DOM 的末尾,然后用绝对位置将它们放在正确的位置,在无效字段的前面。

关于如何使插件在 FORM 之外工作的建议?

4

1 回答 1

1

使用 errorLabelContainer 和/或 errorContainer 选项为您的错误消息指定目标 DOM 节点。喜欢:

$("#myform").validate({
   errorLabelContainer: "div#errors",
})

请参阅http://docs.jquery.com/Plugins/Validation/validate#toptions上的文档,您将找到一些使用 errorContainer 和 errorLabelContainer 的工作示例。

于 2011-04-29T10:34:56.383 回答