Что делает this.optional(element) при добавлении метода проверки jQuery?
См. документацию:
https://jqueryvalidation.org/jQuery.validator.addMethod/
Интересно, что делает this.optional(element)
. Я создал две формы для тестирования:
Form1 и Form2 - один с this.optional(element)
и другой без него. Теоретически говоря и в соответствии с несколькими комментариями к этому ответу Эндрю Уитакеру:
all this.optional
does is say "если поле является необязательным, верните true, если оно пустое"
и
Проверка this.optional
в основном проверяет, не пустое поле или нет, прежде чем оценивать, соответствует ли оно правилу.
Но в действии я не вижу разницы в том, как Form1 и Form2. Пожалуйста, помогите мне понять разницу в действии.
Ответы
Ответ 1
ОК... поэтому в ваших примерах поле никогда не бывает пустым в любой форме. Либо у него есть значение-заполнитель, либо попытка указать адрес электронной почты. Вся точка this.optional(element)
заключается в немедленном возврате истины, если элемент пуст, и он не требуется.
Итак, если у вас есть эти два метода:
jQuery.validator.addMethod("BOB", function (value, element) {
return this.optional(element) ||
element.value === 'BOB';
}, 'You did not enter BOB');
jQuery.validator.addMethod("mustbeBOB", function (value, element) {
return element.value === 'BOB';
}, 'You did not enter BOB');
Добавление класса BOB required
будет таким же, как ввод класса mustbeBOB
. Сравните это с классом BOB
, который позволит использовать пробел или "BOB", а не класс mustbeBOB
, который будет проходить проверку только со значением BOB
, пробел будет неудачным. Это имеет смысл?
Ответ 2
this.optional
предназначен для использования в методах проверки общего назначения, которые могут использоваться с требуемыми или необязательными элементами. Это позволяет им пропустить все свои собственные проверки, если поле не заполнено. Если поле является необязательным, метод возвращается успешно немедленно; если это необходимо, метод немедленно возвращает отказ.
Используя этот метод, можно предположить, что значение не пустое, что может упростить остальную часть его кодирования.