JQ验证插件 - 表单外的错误标签(errorPlacement),是否可能?

时间:2011-01-21 23:22:49

标签: jquery validation errorplacement

我正在使用JQuery Validation Plugin

如果可以将错误放在正在验证的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

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

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

如何使插件在FORM之外工作?

1 个答案:

答案 0 :(得分:1)

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

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

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