上班无事,学习jQuery Validation,于是手写一公共范例,并收藏以便后用

验证操作类formValidatorClass.js


  1/**//**  
  2 * @author ming  
  3 */  
  4$(document).ready(function(){       
  5         
  6/**//* 设置默认属性 */       
  7$.validator.setDefaults({       
  8    submitHandler: function(form) {    
  9        form.submit();    
 10    }       
 11});   
 12  
 13// 字符验证       
 14jQuery.validator.addMethod("stringCheck", function(value, element) {       
 15    return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);       
 16}, "只能包括中文字、英文字母、数字和下划线");   
 17  
 18// 中文字两个字节       
 19jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {       
 20    var length = value.length;       
 21    for(var i = ; i < value.length; i++){       
 22        if(value.charCodeAt(i) > ){       
 23        length++;       
 24        }       
 25    }       
 26    return this.optional(element) || ( length >= param[] && length <= param[] );       
 27}, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)");   
 28  
 29// 身份证号码验证       
 30jQuery.validator.addMethod("isIdCardNo", function(value, element) {       
 31    return this.optional(element) || isIdCardNo(value);       
 32}, "请正确输入您的身份证号码");    
 33     
 34// 手机号码验证       
 35jQuery.validator.addMethod("isMobile", function(value, element) {       
 36    var length = value.length;   
 37    var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;   
 38    return this.optional(element) || (length ==  && mobile.test(value));       
 39}, "请正确填写您的手机号码");       
 40     
 41// 电话号码验证       
 42jQuery.validator.addMethod("isTel", function(value, element) {       
 43    var tel = /^\d{3,4}-?\d{7,9}$/;    //电话号码格式010-12345678   
 44    return this.optional(element) || (tel.test(value));       
 45}, "请正确填写您的电话号码");   
 46  
 47// 联系电话(手机/电话皆可)验证   
 48jQuery.validator.addMethod("isPhone", function(value,element) {   
 49    var length = value.length;   
 50    var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;   
 51    var tel = /^\d{3,4}-?\d{7,9}$/;   
 52    return this.optional(element) || (tel.test(value) || mobile.test(value));   
 53  
 54}, "请正确填写您的联系电话");   
 55     
 56// 邮政编码验证       
 57jQuery.validator.addMethod("isZipCode", function(value, element) {       
 58    var tel = /^[0-9]{6}$/;       
 59    return this.optional(element) || (tel.test(value));       
 60}, "请正确填写您的邮政编码");    
 61  
 62//开始验证   
 63$('#submitForm').validate({   
 64    /**//* 设置验证规则 */  
 65    rules: {   
 66        username: {   
 67            required:true,   
 68            stringCheck:true,   
 69            byteRangeLength:[,]   
 70        },   
 71        email:{   
 72            required:true,   
 73            email:true  
 74        },   
 75        phone:{   
 76            required:true,   
 77            isPhone:true  
 78        },   
 79        address:{   
 80            required:true,   
 81            stringCheck:true,   
 82            byteRangeLength:[,]   
 83        }   
 84    },   
 85       
 86    /**//* 设置错误信息 */  
 87    messages: {   
 88        username: {       
 89            required: "请填写用户名",   
 90            stringCheck: "用户名只能包括中文字、英文字母、数字和下划线",   
 91            byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)"       
 92        },   
 93        email:{   
 94            required: "请输入一个Email地址",   
 95            email: "请输入一个有效的Email地址"  
 96        },   
 97        phone:{   
 98            required: "请输入您的联系电话",   
 99            isPhone: "请输入一个有效的联系电话"  
        },   
        address:{   
            required: "请输入您的联系地址",   
            stringCheck: "请正确输入您的联系地址",   
            byteRangeLength: "请详实您的联系地址以便于我们联系您"  
        }   
    },   
       
    /**//* 设置验证触发事件 */  
    focusInvalid: false,   
    onkeyup: false,   
       
    /**//* 设置错误信息提示DOM */  
    errorPlacement: function(error, element) {       
        error.appendTo( element.parent());       
    },     
       
});   
  
});

测试页index.html


 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   
 2"http://www.w3.org/TR/html4/loose.dtd">  
 3<html xmlns="http://www.w3.org/1999/xhtml">  
 4    <head>  
 5        <meta http-equiv="Content-Type" content="text/html; charset=gbk" />  
 6        <title>jQuery验证</title>  
 7        <script src="lib/jquery/jquery-1.3.2.min.js" ></script>  
 8        <script type="text/javascript" src="lib/jquery/jquery.validate.js" mce_src="lib/jquery/jquery.validate.js"></script>  
 9        <script type="text/javascript" src="lib/jquery/messages_cn.js"></script>  
        <script type="text/javascript" src="lib/jquery/formValidatorClass.js"></script>  
        <style type="text/css">         * {}{    
            font-family: Verdana;    
            font-size: 96%;    
        }   
        label {}{    
            width: 10em;    
            float: left;    
        }   
        label.error {}{    
            float: none;    
            color: red;    
            padding-left: .5em;    
            vertical-align: top;    
        }   
        p {}{    
            clear: both;    
        }   
        .submit {}{    
            margin-left: 12em;    
        }   
        em {}{    
            font-weight: bold;    
            padding-right: 1em;    
            vertical-align: top;    
        }   
           
</style>
    </head>  
    <body>  
        <form class="submitForm" id="submitForm" method="get" action="">  
         <fieldset>  
           <legend>表单验证</legend>  
           <p>  
             <label for="username">用户名</label>  
             <em>*</em><input id="userName" name="username" size="25" />  
           </p>  
           <p>  
             <label for="email">E-Mail</label>  
             <em>*</em><input id="email" name="email" size="25" />  
           </p>  
           <p>  
             <label for="phone">联系电话</label>  
             <em>*</em><input id="phone" name="phone" size="25" value="" />  
           </p>  
           <p>  
             <label for="address">地址</label>  
             <em>*</em><input id="address" name="address" size="22">  
           </p>  
             <input class="submit" type="submit" value="提交"/>  
           </p>  
          </fieldset>  
         </form>  
    </body>  
</html>

[原创]jQuery Validation范例的更多相关文章

  1. [转发]jQuery Validation范例

    验证操作类formValidatorClass.js参照文件有: http://www.cnblogs.com/easyinsc/archive/2009/02/27/1407826.html htt ...

  2. jQuery Validation Engine 表单验证

    功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身拥有丰富的验证规则外,还可以添加自定义的验证规则. 兼容 IE 6+, Chrome, ...

  3. 原创jquery插件treeTable(转)

    由于工作需要,要直观的看到某个业务是由那些子业务引起的异常,所以我需要用树表的方式来展现各个层次的数据. 需求: 1.数据层次分明: 2.数据读取慢.需要动态加载孩子节点: 3.支持默认展开多少层. ...

  4. jquery.validation.js 表单验证

    jquery.validation.js 表单验证   官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuer ...

  5. 表单验证插件----jquery validation

    1.下载地址:http://jqueryvalidation.org/ 2.使用方法: <script type="text/javascript" src="ht ...

  6. 网友微笑分享原创Jquery实现瀑布流特效

    首先非常感谢网友微笑的无私分享,此Jquery特效是一款非常流行和实用的瀑布流布局,核心代码只有几十行,是我见过代码量最少的瀑布流布局,非常适合网友们学习哦,希望大家好好看一下这个Jquery特效的原 ...

  7. jquery and jquery validation 常见问题解决

    Cannot read property 'settings' of undefined jquery validation 这个问题常常发生在动态添加rule的时候. 解决方法 // 在timeou ...

  8. 如何解决jQuery Validation针对动态添加的表单无法工作的问题?

    为了充分利用ASP.NET MVC在服务端呈现HTML的能力,在<利用动态注入HTML的方式来设计复杂页面>一文中介绍了,通过Ajax调用获取HTML来呈现复杂页面中某一部分界面的解决方案 ...

  9. jQuery Validation remote的缓存请求

    不知大家有没有遇到,用jQuery Validation(本文讨论的版本为jQuery Validation Plugin 1.11.1)用remote方式做校验时,如果验证元素的值保持一致,进行多次 ...

随机推荐

  1. Software-Defined Networking:A Comprehensive Survey--Day3

    (接Day2的内容 +2s) E. Layer V: Northbound Interfaces 南行接口已经得到广泛接受(OpenFlow),但现在就定义北向接口还为时尚早,开发不同的控制器经验一定 ...

  2. Alpha 冲刺二

    团队成员 051601135 岳冠宇 051604103 陈思孝 031602629 刘意晗 031602248 郑智文 031602234 王淇 会议照片 项目燃尽图 项目进展 暂无进展, 项目描述 ...

  3. MongoDB入门 和nodejs操作

    简介 MongoDB 开源,高性能的NoSQL数据库:支持索引.集群.复制和故障转移.各种语言的驱动程序:高伸缩性: NoSQL毕竟还处于发展阶段,也有说它的各种问题的:http://coolshel ...

  4. button 和 submit 的区别

    表单提交中button和submit的区别submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮, ...

  5. LOJ #2141. 「SHOI2017」期末考试

    题目链接 LOJ #2141 题解 据说这道题可以三分(甚至二分)? 反正我是枚举的 = = 先将t和b数组排序后计算出前缀和, 然后枚举最晚的出成绩时间,每次可以O(1)直接计算调整到该时间所需的代 ...

  6. 【hdu3842】 Machine Works

    http://acm.hdu.edu.cn/showproblem.php?pid=3842 (题目链接) 题意 一个公司使用一个厂房$D$天,希望获利最大.有$n$台机器,每一台可以在第$D_i$天 ...

  7. Python Socket函数及说明

  8. POJ 3660 Cow Contest / HUST 1037 Cow Contest / HRBUST 1018 Cow Contest(图论,传递闭包)

    POJ 3660 Cow Contest / HUST 1037 Cow Contest / HRBUST 1018 Cow Contest(图论,传递闭包) Description N (1 ≤ N ...

  9. linux文件名匹配——通配符使用

    背景:在linux使用过程中,经常需要查找文件,对命令中的通配符pattern和正则表达式的区分不是很清楚.有必要好好研究一下. 1 扫盲 1.1 通配符和正则表达式 当在使用命令行时,有很多时间都用 ...

  10. NO.2: 尽量以const,enum,inline 替换 #define

    1.首先#define 定义不重视作用域(scope),虽然可以#undef控制,但是不美观,还存在多次替换的问题,以及没有任何封装性. 2.const XXX_XX,保证其常量性以及可控的作用域,如 ...