zoukankan      html  css  js  c++  java
  • 学习 表单验证插件validate

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <link rel="stylesheet" href="style.css">
    <body>
        <form action="" id="demoForm">
            <fieldset>
                <legend>用户登陆</legend>
                    <p id="info"></p>
                    <p id="info2" style="display:none">输入错误</p>
                    <p>
                        <label for="usename">用户登录</label>
                        <input type="text" id="usename" name="usename">     
                    </p>
                    <p>
                        <label for="parseword">密码</label>
                        <input type="password" id="parseword" name="parseword">
                    </p>
                    <p>
                        <label for="confirm-parseword">确认密码</label>
                        <input type="password" id="confirm-parseword" name="confirm-parseword">
                    </p>
                    <p>
                        <label for="dates">日期</label>
                        <input type="text" id="dates" name="dates">
                    </p>
                    <p>
                        <label for="emails">邮箱</label>
                        <input type="text" id="emails" name="emails">
                    </p>
                    <p>
                        <label for="loads">地址</label>
                        <input type="text" id="loads" name="loads">
                    </p>
                    <p>
                        <label for="numbers">数字</label>
                        <input type="text" id="numbers" name="numbers">
                    </p>
                    
                    <p>
                        <label for="postcodes">邮政编码</label>
                        <input type="text" id="postcodes" name="postcodes">
                    </p>
    
                    <p>
                        <input type="submit" value="登录"/>
                    </p>
                    <p>
                        <button id="check">检测表单</button>
                    </p>
            </fieldset>
        </form>
    </body>
    <script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.js"></script>
    <script src="jquery.validate.js"></script>
    <script>    
        var validator; 
        $(document).ready(function(){
            validator = $("#demoForm").validate({
                debug:true,//只进行检测不提交,调试很方便
                rules:{//定义校验规则
                    usename:{//usename是input的name不是id
                        required:{
                                depends:function(element){
                                    return $("#parseword").is(":filled");//密码是否填写  不填写密码不校验用户名
                                }
                            },
                        //url:true,//地址需要输入  http || https
                        //email:true,//验证邮箱
                        minlength:{
                                param:2,
                                depends:function(element){
                                    return $("#parseword").is(":filled");//密码是否填写  不填写密码不校验用户名
                                }
                            },//最小长度
                        maxlength:10,//最大长度
                        //rangelength:[2,10],//长度范围
                        //remote:"remote.json" GET请求
                        /*remote:{
                            url:"remote.json",
                            type:"post",
                            data:{
                                loginTime:function(){
                                    return + new Date;
                                }
                            }
                        }*/
                    },
                    parseword:{
                        required:true,
                        minlength:5,
                        maxlength:16
                    },
                    "confirm-parseword":{
                        equalTo:"#parseword"
                    },
    
    
                    dates:{
                        required:true,
                        //date:true//范围非常广
                        dateISO:true
                    },
                    emails:{
                        required:true,
                        email:true
                    },
                    loads:{
                        required:true,
                        url:true
                    },
                    numbers:{
                        required:true,
                        //number:true//整数数字、小数
                        digits:true//非负整数
                    },
                    postcodes:{
                        //required:true,
                        postcode:"中国"
                    },
                },
                messages:{//定义提示信息
                    usename:{
                        required:"必填",
                        minlength:"最少两位数",
                        maxlength:"最多十位数字",
                        remote:"用户名不存在",
                        rangelength:"2-10个字符",
                        email:"请输入正确的邮箱地址",
                        url:"请输入正确的地址"
                    },
                    parseword:{
                        required:"必填",
                        minlength:"最少五位数",
                        maxlength:"最多十六位数字"
                    },
                    "confirm-parseword":{
                        equalTo:"密码不一致"
                    },
                    dates:{
                        required:"必填",
                        date:"请输入正确的有效日期",
                        dateISO:"错误"
                    },
                    emails:{
                        required:"必填",
                        email:"错误"
                    },
                    loads:{
                        required:"必填",
                        url:"错误"
                    },
                    numbers:{
                        required:"必填",
                        number:"错误",
                        digits:"非负整数"
                    }
                },
                submitHandler:function(form){//表单验证成功之后执行的方法
                    console.log($(form).serialize());
                },
    
    
    
    
    
                //错误信息在一个地方显示
                /*groups:{
                    login:"usename parseword confirm-parseword"
                },
                //错误信息显示在........
                errorPlacement:function(error,element){
                    error.insertBefore("#info");
                },*/
    
    
                //onsubmit:false,//是否在登录时进行验证默认 true;
    
    
    
                focusInvalid:true,//提交表单后,未通过验证的表单是否获得焦点
    
    
    
    
    
                //errorClass:"wrong",//验证错误定义的类名
                //validClass:"right",//验证正确定义的类名
                //errorContainer:"#info", //设置 info 显示还是隐藏
                //errorContainer:"#info2",
                //errorLabelContainer:"#info",// ul 再放入 info里面
                //errorElement:"li",  //错误信息使用的标签
                //wapper:"ul",//包裹错误信息使用的标签
    
    
    
                showErrors:function(errorMap,errorList){
                    console.log(errorMap);
                    console.log(errorList);
                    this.defaultShowErrors();//不调用默认不显示错误信息
                },
    
    
    
    
                //针对验证 元素 label
                success:function(label){//验证成功之后给验证成功的元素添加类名
                    label.addClass("successright");
                },
    
    
                //针对表单元素 给未通过验证的元素添加效果
                highlight:function(element, errorClass, validClass){
                    $(element).addClass(errorClass).removeClass(validClass);
                    $(element).fadeOut().fadeIn();
                },
    
                unhighlight:function(element, errorClass, validClass){
                    $(element).addClass(validClass).removeClass(errorClass);
                },
    
    
    
    
    
                /*invalidHandler:function(event,validator){//表单验证失败之后执行的方法
                    console.log("错误数" + validator.numberOfInvalids());
                }*/
                //ignore:"#usename"//对某些元素不进行校验
                //ignore:"hidden"  //默认不对影藏的元素校验
    
            });
    
    
    
            //自定义验证方法  邮政编码
            $.validator.addMethod("postcode" ,function(value, element, params){
                var postcode = /^[0-9]{6}$/;
    
                console.log(params);
                return this.optional(element) || (postcode.test(value));
                //this.optional(element) 去掉之后不填也会提示 请填写正确的邮政编码!!
                //this.optional(element) 值为空的时候不去触发校验规则
            }, $.validator.format("请填写正确的{0}邮政编码!!"));
    
    
    
    
    
            /*$("#demoForm").on("invalid-form", function(event,validator){//表单验证失败之后执行的方法
                    console.log("错误数" + validator.numberOfInvalids());
                });*/
    
    
    
            //检测
            $("#check").click(function(){
                alert($("#demoForm").valid() ? "填写正确" : "填写错误");
            })
        })
    </script>
    </html>
  • 相关阅读:
    图像裁剪功能,鼠标抬起移除事件,不只是想去掉鼠标抬起时的裁剪事件,重要的是jquery绑定的都是dom2级事件
    在 JavaScript 里 + 会把一些字符转化成数字
    ++[[]][+[]]+[+[]] == 10 //true
    node 接口
    windows下,node.js默认执行的根目录
    鸟速度不匀速的方法Math.sqrt(this.i++); 开根号
    rotate 里面的是弧度不是度,如果需要度则要转成度 Math.PI/180
    定义一个数,它可能为正 也可能为负 var num = Math.pow(-1,parseInt(Math.random() * 2) + 1);
    如何单独使用modelsim进行仿真
    Xilinx开发板信息
  • 原文地址:https://www.cnblogs.com/mymission/p/5871138.html
Copyright © 2011-2022 走看看