jquery.validate 扩展

来源:互联网 发布:植物生根液是vb还是vc 编辑:程序博客网 时间:2024/06/16 05:23

转自: http://hi.baidu.com/3305128/blog/item/b055fe95958abf41d0135e5d.html

 

$(document).ready(function(){           /* 设置默认属性 */        $.validator.setDefaults({          submitHandler: function(form) { form.submit(); }        });        // 中文字两个字节        jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {            var length = value.length;          for(var i = 0; i < value.length; i++){               if(value.charCodeAt(i) > 127){                length++;            }            }          return this.optional(element) || ( length >= param[0] && length <= param[1] );        }, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)");           /* 追加自定义验证方法 */        // 身份证号码验证        jQuery.validator.addMethod("isIdCardNo", function(value, element) {          return this.optional(element) || isIdCardNo(value);        }, "请正确输入您的身份证号码");           // 字符验证        jQuery.validator.addMethod("userName", function(value, element) {          return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);        }, "用户名只能包括中文字、英文字母、数字和下划线");           // 手机号码验证        jQuery.validator.addMethod("isMobile", function(value, element) {          var length = value.length;          return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/.test(value));        }, "请正确填写您的手机号码");           // 电话号码验证        jQuery.validator.addMethod("isPhone", function(value, element) {          var tel = /^(\d{3,4}-?)?\d{7,9}$/g;          return this.optional(element) || (tel.test(value));        }, "请正确填写您的电话号码");           // 邮政编码验证        jQuery.validator.addMethod("isZipCode", function(value, element) {          var tel = /^[0-9]{6}$/;          return this.optional(element) || (tel.test(value));        }, "请正确填写您的邮政编码");            $(regFrom).validate({        /* 设置验证规则 */          rules: {            userName: {                 required: true,                 userName: true,                 byteRangeLength: [3,15]            },            password: {                 required: true,                 minLength: 5            },            repassword: {                 required: true,                 minLength: 5,                 equalTo: "#password"            },            question: {                 required: true            },            answer: {                 required: true            },            realName: {                 required: true            },            cardNumber: {                 isIdCardNo: true            },            mobilePhone: {                 isMobile: true            },            phone: {                 isPhone: true            },            email: {                 required: true,                 email: true            },            zipCode: {                 isZipCode:true            }       },        /* 设置错误信息 */        messages: {        userName: {            required: "请填写用户名",            byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)"        },        password: {             required: "请填写密码",             minlength: jQuery.format("输入{0}.")        },        repassword: {             required: "请填写确认密码",             equalTo: "两次密码输入不相同"        },        question: {             required: "请填写您的密码提示问题"        },        answer: {             required: "请填写您的密码提示答案"        },        realName: {             required: "请填写您的真实姓名"        },        email: {             required: "请输入一个Email地址",         email: "请输入一个有效的Email地址"        }       },        /* 错误信息的显示位置 */        errorPlacement: function(error, element) {        error.appendTo( element.parent() );       },        /* 验证通过时的处理 */    success: function(label) {    // set    as text for IE        label.html(" ").addClass("checked");       },        /* 获得焦点时不验证 */       focusInvalid: false,       onkeyup: false    });           // 输入框获得焦点时,样式设置        $('input').focus(function(){          if($(this).is(":text") || $(this).is(":password"))            $(this).addClass('focus');          if ($(this).hasClass('have_tooltip')) {            $(this).parent().parent().removeClass('field_normal').addClass('field_focus');           }        });           // 输入框失去焦点时,样式设置        $('input').blur(function() {           $(this).removeClass('focus');          if ($(this).hasClass('have_tooltip')) {            $(this).parent().parent().removeClass('field_focus').addClass('field_normal');           }        });    }); 


 

原创粉丝点击