JQuery пользовательский метод вопрос, - PullRequest
2 голосов
/ 12 июня 2009

Я добавил капчу в форму и хочу проверить это поле.

jQuery.validator.addMethod("matchCaptcha", function(value,element)  {
    return  this.optional(element) || value == '#request.strCaptcha#';
});

#request.strCaptcha# эта часть просто возвращает буквенно-цифровой символ, например, "cZk9ljW"

по правилам я добавил:

captcha : { matchCaptcha : true }

Проверка не выполняется, и я не получаю ошибок от сценария. Что я делаю неправильно? спасибо

Ответы [ 2 ]

1 голос
/ 12 июня 2009

Все, что вы опубликовали, звучит нормально, что, вероятно, означает, что вы что-то не опубликовали.

  1. Ты делаешь addMethod внутри $(document).ready(), верно?
  2. Запускали ли вы это с отладкой alert() внутри функции проверки, чтобы проверить, действительно ли она не запущена, в отличие от запуска и всегда возвращает true?
  3. Имя ввода для текстовой области капчи: captcha, да?

Если вы добавите alert() и обнаружите, что вызывается метод проверки, я рекомендую вам просто избавиться от части this.optional(element) ||. Я не думаю, что вы когда-нибудь хотели, чтобы ваша капча была необязательной.

0 голосов
/ 12 июня 2009

Этот был немного хитрым. Я использую ColdFusion. Я создал собственный тег для создания и отображения капчи. Я удалил jQuery.validator.addMethod после моего вызова пользовательского тега. тогда я избавился от this.optional (element) || часть. Кроме того, пришлось добавить еще $ (). Ready (function () {...});

Итак, это выглядит так:

$ (). ready (function () { jQuery.validator.addMethod ("matchCaptcha", функция (значение, элемент) { возвращаемое значение == '# request.strCaptcha #'; }); });

У меня все еще есть капча: {matchCaptcha: true} в правилах проверки. Спасибо за внимание.

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