Подключаемый модуль проверки JQuery: как сделать сообщение об ошибке атрибутом в метке ошибки? - PullRequest
0 голосов
/ 15 апреля 2011

Прямо сейчас у меня есть плагин проверки для отображения меток с одним из двух фоновых изображений в зависимости от того, является ли поле действительным или нет.Тем не менее, текст ошибки по-прежнему вставляется в ярлыки «недопустимо» (по умолчанию «допустимые» ярлыки для них не содержат сообщений об ошибках).

Я хочу удалить текст из отображения на«недопустимая» метка ошибки и поместите ее внутри метки в качестве значения для атрибута.Таким образом, я могу использовать плагин всплывающей подсказки, чтобы отобразить его как всплывающую подсказку при наведении мыши.

Проблема в том, что я не знаю, как это сделать.

Я знаю, что у меня естьчтобы «перехватить» сообщения об ошибках в параметре валидатора messages , чтобы они не появлялись. Этот параметр может принимать функцию для данного требования, которая возвращает строку ошибки (которую я установлю на «»).Однако (насколько я знаю) у меня нет доступа к объекту метки ошибки оттуда, чтобы вставить сообщение в качестве атрибута.В описании опции указано, что функция принимает «элемент» в качестве второго параметра, но я не уверен, означает ли это элемент DOM или элемент правила JQuery.val:

messages:

Пары ключ / значение, определяющие пользовательские сообщения.Ключ - это имя элемента, значение сообщения для отображения для этого элемента. Вместо простого сообщения можно использовать другую карту с конкретными сообщениями для каждого правила.Переопределяет атрибут title элемента или сообщение по умолчанию для метода (в таком порядке).Каждое сообщение может быть строкой или обратным вызовом.Обратный вызов вызывается в области действия валидатора и с параметрами правила в качестве первого и элемента в качестве второго arugment, он должен возвращать строку для отображения в качестве сообщения.

Я предположил, что это былоэлемент DOM поля и пытался сделать что-то вроде:

 //#createAccount is the id for the form
 messages: {
               eMail: {
                   required: function(param,element){
                       $("#createAccount label[class=\"error\"][for=" + element.getAttribute("name") + "]")
                       .attr("message","Required"); return "";},

                   email: function(param,element){
                       $("#createAccount label[class=\"error\"][for=" + element.getAttribute("name") + "]")
                       .attr("message","Not valid email"); return "";}
                    }
           },
            success: "valid"
    ...
    ...

Но по какой-то причине он манипулирует опцией валидатора success , которую я использую, чтобы выбрать фоновое изображение для отображения.Таким образом, это означает, что вещи действительны, что не должны.

Мне просто интересно, был ли это правильный путь, или есть более легкий путь

1 Ответ

0 голосов
/ 16 апреля 2011

Хорошо, я понял, что случилось. Кажется, что если вы отправляете пустую строку ("") в качестве сообщения для элемента, плагин будет считать, что это поле является действительным. Таким образом, вы можете делать то, что должны делать внутри функции, до тех пор, пока вы возвращаете что-либо, кроме «» или «» (в итоге я вернул «\ 0», который не является печатаемым символом)

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