Проблема Я хочу проверить поле с помощью созданного мной пользовательского валидатора, который, по сути, является регулярным выражением только для номера телефона, ЕСЛИ поле имеет значение, в противном случае его не нужно проверять, потому что это необязательно.
Пользовательский валидатор:
$.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" />
Любая помощь приветствуется, потому что я просто потерян. = \
Вы можете вызвать .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.');
Это стандартная схема для плагина проверки, взгляните на их дополнительные методы здесь для примеров.