Как я могу позволить jQuery Validator использовать мой предопределенный элемент ошибки? - PullRequest
0 голосов
/ 20 января 2012

У меня есть настроенная форма, которая позволяет пользователям регистрироваться на нашем мобильном сайте. Он имеет базовую проверку JavaScript с помощью плагина проверки jQuery. Тем не менее, наш скрипт отправки формы также выполняет проверку. По этой причине, если обнаружена ошибка, сервер отправляет HTTP-перенаправление на страницу ошибки с некоторыми $_GET данными.

Когда вы загружаете страницу формы, любые ошибки, найденные в массиве $_GET, выводятся в соответствующее поле в <div class="error">. Это прекрасно работает.

Поскольку jQuery validator и наш PHP-скрипт оба выполняют одинаковую проверку, имеет смысл выводить ошибки в одно и то же поле div.error. Это также (теоретически) избавит от сообщения об ошибке после проверки поля.

Однако, если я изменю errorElement: "div" в валидаторе jQuery, по какой-то причине ошибки даже не упоминаются. Изменение этого значения на em, label или p решает проблему. Но если мы изменим наш начальный элемент на любой из них, он снова сломается.

Это должна быть функция, встроенная в сценарий проверки jQuery, она не будет выводить ошибку в элемент, который уже существует, если только он не создан средством проверки. Как я могу обойти это?

Вот скрипка, демонстрирующая проблему, замените errorElement: "div" на любой элемент, и он будет работать.

http://jsfiddle.net/mDvHh/

1 Ответ

1 голос
/ 20 января 2012

Перезаписать обработчик errorPlacement вместо errorElement, например:

    errorPlacement: function(error, element) {
        element.next(".error").html(error);
    },

Также см. ваш обновленный jsfiddle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...