jQuery规则添加掩码

时间:2017-03-03 02:56:58

标签: javascript jquery jquery-validate mask

美好的一天,

我支持由其他团队开发的项目。

我看到一些jQuery代码,我不太明白代码在做什么,我打算修改它,但起初我需要知道它想要做什么。

以下是代码:

$(function(){
    $(':input[name=country]').rules('add', {
        required: true,
        mask: /^[a-zA-Z0-9 ]+$/
    }); 
});

我怀疑它是掩码方法,例如:

$(':input[name=country]').mask("0000-0000"); // this is work

但是我尝试运行但它失败了,遇到了错误:

Cannot read property 'call' of jquery.validate.min.js:16 undefined

enter image description here 任何人都知道代码试图做什么?

2 个答案:

答案 0 :(得分:1)

.rules()方法是jQuery Validate插件的一部分,与.mask()方法完全无关,该方法是另一个插件的一部分。此代码尝试使用input将表单验证规则动态添加到name="country"元素。

$(':input[name=country]').rules('add', {
    required: true,
    mask: /^[a-zA-Z0-9 ]+$/. // <- there is no such rule called 'mask': REMOVE THIS LINE
});

错误是因为jQuery Validate正在寻找一个名为mask的规则,其中没有&#34;掩码&#34;这个插件中的规则。

您唯一的选择是:

  1. 删除对此不存在规则的所有引用,或
  2. 使用the .addMethod() method
  3. 创建名为mask的自定义规则

答案 1 :(得分:-1)

该代码似乎使用jQuery Validate plugin来创建validation rule,该值是必需的,且必须仅包含字母,数字或空格。

验证规则适用于any input, textarea, select, or button element,其name属性的值为country。我怀疑问题是你的文档中没有这些字段之一。