jQuery验证器插件:验证可选字段

jQuery验证器插件:验证可选字段,jquery,jquery-plugins,validation,jquery-validate,Jquery,Jquery Plugins,Validation,Jquery Validate,问题 我想使用我创建的自定义验证器来验证一个字段,该验证器本质上是一个电话号码的正则表达式,仅当该字段有值时,否则它不需要验证,因为它是可选的 自定义验证程序: $.validator.addMethod('phone', function (value) { return /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value); }, 'Please enter a valid US phon

问题 我想使用我创建的自定义验证器来验证一个字段,该验证器本质上是一个电话号码的正则表达式,仅当该字段有值时,否则它不需要验证,因为它是可选的

自定义验证程序:

   $.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.');

例如,这是验证插件的标准方案。

好极了,真是糟糕!谢谢你。我将深入研究您提到的其他方法。@creativetim-Welcome:)并欢迎使用SO!,确保通过答案左侧的复选标记接受解决问题的答案,该复选标记有助于:)