Плагин проверки JQ - метки ошибок (errorPlacement) вне формы, возможно ли это? - PullRequest
2 голосов
/ 22 января 2011

Я использую Плагин проверки 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?

1 Ответ

1 голос
/ 29 апреля 2011

Используйте опции errorLabelContainer и / или errorContainer, чтобы указать целевой DOM-узел для сообщений об ошибках. Как:

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

См. Документацию по http://docs.jquery.com/Plugins/Validation/validate#toptions, вы найдете несколько рабочих примеров как для использования errorContainer, так и errorLabelContainer.

...