jQuery 验证输入类型的 setDefaults

jQuery Validate setDefaults for input type

我正在使用 jQuery 验证库在提交之前验证我网站上的表单。我想为我的所有表单使用一个 validate() 函数,只需将 required 属性添加到表单输入就可以很好地工作。但是我 运行 遇到了麻烦。

我想使用 additional-methods.js 库中的验证方法来验证 phone 数字和其他特殊输入。在我的 validate() 函数中,我将添加以下内容。

$('form').validate({
    rules: {
        user_phone: {
           phoneUS: true,
        },
    },
});

但这只适用于 name='user_phone' 的输入。我有多个 phone 输入的表单。有没有办法在 type='tel' 的所有输入上使用 phoneUS 验证方法?

提前感谢任何对此提供任何见解的人。

编辑

我正在寻找这样的东西...

$.validator.setDefaults({ 
   rules: {
      'type=tel': {
         phoneUS: true,
      },
   },    
});

不,您不能在 .validate().setDefaults() 内一次声明一个 name 以外的任何规则。

Is there a way to use the phoneUS validation method on all inputs with type='tel'?

是的,使用 the .rules('add') method,您可以使用任何 jQuery 选择器并同时定位多个输入元素。

$('input[type="tel"]').each(function() {
    $(this).rules('add', {
        phoneUS: true,
        // other rules
    });
});
  • 必须在每个输入元素上仍然有唯一的name

  • You must use a jQuery .each() when the selector contains multiple elements.

  • 您仍然必须使用 .validate() 方法来初始化表单上的插件。

演示:http://jsfiddle.net/fqss7uy3/