问题 我想使用我创建的自定义验证器验证字段,该字段实际上只是字段有值的电话号码的正则表达式,否则不需要验证,因为它是可选的。
自定义验证器:
$.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" />
任何帮助都表示赞赏,因为我很遗憾。 = \
答案 0 :(得分:13)
你可以像这样调用.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.');
这是验证插件的标准方案,例如take a look at their additional methods here。