2012-06-16 10 views
1

Мне нужно создать настраиваемое правило для плагина проверки JQuery, проверяющего одно конкретное слово.Проверка правильности плагина jquery для правильного определения слова

В этом случае пользователь должен правильно ответить на вопрос, введя слово «cat» в поле ввода. Таможенное правило должно было бы определить ответ как «cat», я думал как переменную, а затем проверял его.

Моя неудачная попытка:

jQuery.validator.addMethod("answercheck", function(value, element) { 
    var password = string('hot'); 
    return value(password); 
}, "Type the correct answer"); 

и установки:

rules: { 
    input_answer{ 
     required: true, 
     answercheck: true 
    } 

messages: { 
    input_answer{ 
     required: "Answer the question", 
     answercheck: "Your answer is incorrect" 
    } 

Любые идеи?

+3

Вы знаете, когда проверяете текст на клиенте, как это, чтобы пользователь мог видеть код, не так ли? - не только это, они также могут редактировать сценарий –

+0

Вам лучше отправить строку на страницу PHP с помощью ajax. –

ответ

0

Как утверждают другие, это не безопасный метод, так как каждый мог видеть/манипулировать JavaScript и легко обойти его.

Однако, чтобы просто ответить на ваш вопрос, вот как это делается. (Это также хорошее обучение упражнения об использовании addMethod) ...

jQuery.validator.addMethod('answercheck', function (value, element) { 
    return this.optional(element) || /^\bcat\b$/.test(value); 
}, "Type the correct answer"); 

И вы также не нужно будет указать сообщение для answercheck ниже, потому что это уже определено выше в самом method. (Вы также отсутствуют некоторые брекеты {, двоеточия : и запятая , в этом коде.)

rules: { 
    input_answer: { // <- missing colon after input_answer 
     required: true, 
     answercheck: true 
    } 
}, // <- missing brace & comma 
messages: { 
    input_answer: { // <- missing colon after input_answer 
     required: "Answer the question" 
     //, answercheck: "Your answer is incorrect" // not needed, specified in method 
    } 
} // <- missing brace and maybe a comma depending on what follows 

Working jsFiddle DEMO:

http://jsfiddle.net/ht8Lu/


As per the documentation, вам нужно построить ваш собственный метод.

Добавить собственный метод проверки. Он должен состоять из имени (должно быть законным javascript-идентификатором), функцией на основе javascript и строковым сообщением по умолчанию .

Аргументы:

имя; String Имя метода, используемого для идентификации и ссылки на него, должно быть допустимым идентификатором javascript

метод; Обратный вызов Реализация фактического метода, возвращающая значение true, если элемент действителен. Первый аргумент: текущее значение. Второй аргумент : проверенный элемент. Третий аргумент: Параметры.

сообщение (необязательно); Строка, функция Сообщение по умолчанию для отображения этого метода. Может быть функцией, созданной jQuery.validator.format (значение). При неопределенном значении используется уже существующее сообщение (удобно для локализации), в противном случае должны быть определены сообщения для конкретного поля.

Смежные вопросы