Плагин валидатора jQuery: проверить необязательное поле

Проблема Я хочу проверить поле с помощью созданного мной пользовательского валидатора, который, по сути, является регулярным выражением только для номера телефона, ЕСЛИ поле имеет значение, в противном случае его не нужно проверять, потому что это необязательно.

Пользовательский валидатор:

   $.validator.addMethod('phone', function (value) {
       return /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value);
   }, 'Please enter a valid US phone number.');

Правила:

 phone: {
  required: true,
  phone: true
 },
 fax: {
  phone: true
 }

Я даже пытался:

 phone: {
  required: true,
  phone: true
 },
 fax: {
  required: function(element){
   if (!$("#cf-fax").val()) { return true; } else { return false; }
  }
  phone: true
 }

Для справки я пытаюсь сослаться на это поле:

<input type="text" name="fax" class="optional" size="15" maxlength="14" id="cf-fax" />

Любая помощь приветствуется, потому что я просто потерян. = \

8
задан creativetim 19 August 2010 в 21:03
поделиться

1 ответ

Вы можете вызвать .optional() (определяется внутри плагина проверки) следующим образом

$.validator.addMethod('phone', function (value, element) {
   return this.optional(element) || /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value);
}, 'Please enter a valid US phone number.');

Это стандартная схема для плагина проверки, взгляните на их дополнительные методы здесь для примеров.

13
ответ дан 5 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: