jquery验证插件不能正常工作

时间:2013-03-27 08:56:23

标签: jquery jquery-validate

我正在使用jQuery Validation Plugin 1.8.1进行表单验证,我的问题是它无法正常工作

在这个HTML代码中

<input name="Mobile" type="text" class="Input" id="Mobile" placeholder="Type your mobile number" value="<?php echo $activeUser->getMobile();?>" required="true" number="true" />

required="true"工作正常,但number="true"无法正常工作

请帮我解决这个问题 感谢

2 个答案:

答案 0 :(得分:0)

additional-methods.js添加到您的网页中。你应该有mobileUK验证方法或。尝试使用:

<input name="Mobile" type="text" class="Input" id="Mobile" placeholder="Type your mobile number" value="<?php echo $activeUser->getMobile();?>" required="true" mobileUK="true" /> 

编辑

如果html版本不起作用,请尝试使用JS设置:

$("#myform").validate({
  rules: {
    field: {
      required: true,
      mobileUK: true
    }
  }
});

您可以创建自己的验证类型。示例:http://docs.jquery.com/Plugins/Validation/CustomMethods/phoneUS

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, ""); 
    return this.optional(element) || phone_number.length > 9 &&
        phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

$("#myform").validate({
  rules: {
    field: {
      required: true,
      phoneUS: true
    }
  }
});

答案 1 :(得分:0)

您的HTML代码是HTML 5验证的一个因素...

<input name="Mobile" type="text" class="Input" id="Mobile"
placeholder="Type your mobile number" value="" required="true" number="true" />

对于jQuery Validate插件的更新版本(如1.11.0),这不会有问题。

工作演示:http://jsfiddle.net/5rPGv/2/

但是,使用版本1.8.0的jQuery Validate插件时,相同的代码会被破坏。

破碎:http://jsfiddle.net/5rPGv/1/


要修复代码,您只有两个选项:

1)将jQuery Validate插件更新为更高版本。

OR

2)使用任何版本在.validate()内声明您的规则。 http://jsfiddle.net/5rPGv/3/

$(document).ready(function () {

    $('#myform').validate({
        rules: {
            Mobile: {
                required: true,
                number: true
            }
        }
    });

});