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

时间:2010-08-19 21:03:11

标签: 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 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" />

任何帮助都表示赞赏,因为我很遗憾。 = \

1 个答案:

答案 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