无法在validate.js中调用exactlength属性

时间:2016-06-29 11:39:29

标签: jquery jquery-validate

我正在尝试使用jquery.validate.js验证我的html文件。我需要验证mobileno字段的长度,该字段应为10个字符。这是我的代码:

<!-- mobile number goes here. -->
                <div class="form-group">
                    <label for="mobileno" class="col-sm-2 control-label">Mobile No.</label>
                    <div class="col-sm-8">
                        <input type="text" class="form-control" id="mobileno" name="mobileno" placeholder="Mobile No (10 digits)" required autofocus>
                    </div>
                    <span id="mobileno_error"></span>
                </div> 

与之对应的js文件是:

 $("#register_form").validate({
        // Specify the validation rules
        rules: {
            name: "required",
            email: {
                required: true,
                email: true
            },
            mobileno: {
                required: true,
                exactlength: 10
            },
            password: {
              required: true,
              minlength: 6
          },
          confirm_password:{
            required: true,
            equalTo: '#password'
        }
    },

        // Specify the validation error messages
        messages: {
            name:"Please enter your name.",
            email: {
                required: 'Email address is required',
                email: 'Please enter a valid email address',
            },
            mobileno: {
                required: 'Mobile number is required',
                exactlength: 'The mobile number should be of 10 characters.',
            },
            password: {
                required: 'Password is required',
                minlength: 'The password should be of minimum 6 characters.',
            },
            confirm_password: {
                required: 'Confirm password is required',
                equalTo: 'The confirm password should match password.',
            }

        },

离开mobileno字段时,我遇到的问题如下:

  

jquery.validate.js:4未捕获的TypeError:无法读取属性'call'   未定义的。检查元素mobileno时发生异常,   检查'exactlength'方法。

我不知道我做错了什么。

2 个答案:

答案 0 :(得分:1)

  

&#34;我不知道自己做错了什么?&#34;

错误正在告诉你你做错了什么......

  

无法阅读财产&#39;来电&#39; undefined ...检查&#39; exactlength&#39; 方法。

<强> There is no such jQuery Validate rule called exactlength 即可。您不能仅通过在rules对象中写下单词来制定新规则。

要强制字段的长度恰好为X个字符,您可以同时使用minlengthmaxlength规则并将它们都设置为X.

mobileno: {
    required: true,
    minlength: 10,
    maxlength: 10
},

DEMO:http://jsfiddle.net/jmhjwf70/

否则,the additional-methods.js file中有一个phoneUS规则可用于验证任何美国电话号码。另请参阅mobileUKphoneUKphonesUKphoneNL了解其他电话号码规则。

如果情况不理想,那么您可以使用the .addMethod() method编写自己的规则。

答案 1 :(得分:0)

rangelength: [10, 10]

此功能用于字段的长度正好为X个字符。您必须添加additional-method.js,否则不支持