欢迎您,零度科技专业海外服务器租用
公司电话: 24小时电话: 

当前位置:首页>网站建设教程>javascript教程>jquery教程

目录导航

jquery.validate 扩展验证规则,自定义验证规则

美国HS机房 发布于 2012-09-04  
jquery教程
$(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');    
       }    
    });    
}); 

原文来自零度科技:http://www.ldisp.com/a/jquery/2012/1321.shtml

上一篇:jquery.validate和onsubmit 同时使用的方法
下一篇:jquery resize 如何监听div或其它元素的resize事件

 
了解零度?

零度科技主营全球服务器租用,如果您有服务器租用需求请联系

海外服务器租用

推荐香港、美国、韩国。提供站群服务器、高防服务器租用

海外特价服务器

关注零度特价服务器频道,了解全球特价服务器。

167

业务咨询

    技术服务

      特价活动
        全站搜索
        热门搜索:
        会员
        0通知
        客服
        0特价
        搜索
        TOP
        香港高防服务器,远程桌面,韩国服务器,nginx,反向代理