我正在使用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之外工作?
答案 0 :(得分:1)
使用errorLabelContainer和/或errorContainer选项为您的错误消息指定目标DOM节点。像:
$("#myform").validate({
errorLabelContainer: "div#errors",
})
请参阅http://docs.jquery.com/Plugins/Validation/validate#toptions上的文档,您将找到一些使用errorContainer和errorLabelContainer的实例。