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

8

问题

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

自定义验证器:

   $.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个回答

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

这是验证插件的标准方案,在此处查看其附加方法的示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接