jquery之Validata表单验证

  需要jquery和jquery.Validata的包。

  jquery之Validata表单验证

  一、需要注意的是有时候表单错误提示的位置不是我们想要的,所以我们要去人为的干预:

  不满足校验规则,表单校验插件就会定义一个lable标签, 如果表单校验插件定义的lable标签不符合我们的要求,就要自己定义一个lale标签,让标签开始的时处于隐藏状态, for=”sex“ 通过name的属性值gender找到要校验的标签 generate=”true" 写上:那么就会自动在messages中获取填写错误是的提示信息 不写:就会默认使用lable标签中的错误提示信息

 

  二、自定义验证规则

    写在页面中加载事件的里边Validata函数的外边

    格式: 属性  函数

    $.validator.addMethod("校验规则名称",function(value,element,params){  .........})

    function:

      value:input标签的value属性值;文本输入框中用户输入的内容

      element:input标签对象

      params:自定义规则传递参数。

下面是一些基本的校验规则和两个自定义校验规则(更多校验规则也可以去菜鸟教程的jquery中的jquery-validata自己去查看)

(自定义校验规则是校验身份证号时)

jquery之Validata表单验证

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>jQuery validation plug-in - main demo</title>
    <link rel="stylesheet" href="css/screen.css">
    <script src="./js/jquery.min.js"></script>
    <script src="./js/jquery.validate.min.js"></script>


    <script>
        $().ready(function() {
            $.validator.addMethod("sfidnum",function(value,element,params){
                if (value.length!=18){
                    return false;
                }
                return true;

            });
            $.validator.addMethod("sfid",function(value,element,params){
                var reg = /^[0-9]{17}[0-9X]$/
                if (value.length=18){
                    return reg.test(value);
                }
                return true;

            });

                $("#test").validate({

                submitHandler:function(form){
                    alert("提交事件!");
                    form.submit();
                },

                    rules:{
                    username:{
                        required:true,
                        rangelength:[3,5]
                    },
                    password:{
                        required:true,
                        minlength:5
                    },
                    repassword:{
                        required:true,
                        minlength:5,
                        //通过id来与密码比较是否相同
                        equalTo:"#password"
                    },
                    sex:"required",
                    age:{
                        required:true,
                        //rang指的是数字的大小,而rangelength指的是长度
                        range:[26,45],
                        //年龄必须是整数
                        digits:true
                    },
                    bir:{
                        required:true,
                        //必须满足日期格式YYYY-MM-dd
                        dateISO:true,
                        //检验日期的有效性
                        date:true
                    },
                    sid:{
                            required:true,
                            sfidnum:true,
                            sfid:true
                        }

                },
                messages:{
                    username:{
                        required:"不能为空",
                        rangelength:"3到5位"
                    },
                    password:{
                        required:"必须填写",
                        minlength:"长度不能小于5"
                    },
                    repassword:{
                        required:"不能为空",
                        minlength:"长度不能小于5",
                        equalTo:"与密码不同,请在此输入!"
                    },
                    sex:"必选其一",
                    age:{
                        required:"不能为空",
                        //rang指的是数字的大小,而rangelength指的是长度
                        range:"年龄必须在26到45岁之间",
                        //年龄必须是整数
                        digits:"年龄必须是则整数"
                    },
                    bir:{
                        required:"不能为空",
                        //必须满足日期格式YYYY-MM-dd
                        dateISO:"请按YYYY-MM-dd的日期格式书写",
                        date:"日期不正确"
                    },
                    sid:{
                        required:"不能为空",
                        sfidnum:"18位",
                        sfid:"只有最后一位可以是x"
                    }

                }
            });
        });
    </script>

</head>
<body>

<div id="main">
    <form    name="test" id="test"    method="post" action="test.jsp">
        <div>
            <label>姓名</label>
            <input type="text" name="username" >
        </div>
        <div>
            <label>密码</label>
            <input type="password" id="password" name="password" >
        </div>
        <div>
            <label>重复密码</label>
            <input type="password" name="repassword" >
        </div>
        <div>
            <label>性别:</label>
            <input type="radio" name="sex"  value="男"> 男
            <input type="radio" name="sex"  value="女"> 女
            <!--
                不满足校验规则,表单校验插件就会定义一个lable标签,
                如果表单校验插件定义的lable标签不符合我们的要求,就要自己定义一个lale标签,让标签开始的时处于隐藏状态,
                for=”sex“ 通过name的属性值gender找到要校验的标签
                generate=”true"
                    写上:那么就会自动在messages中获取填写错误是的提示信息
                    不写:就会默认使用lable标签中的错误提示信息
            -->
            <label generated="true" class="error" for="sex" style="display: none;"></label>
        </div>
        <div>
            <label>年龄</label>
            <input type="text" name="age" >
        </div>
        <div>
            <label>出生日期</label>
            <input type="text" name="bir" >
        </div>
        <div>
            <label>身份证号</label>
            <input type="text" name="sid" >
        </div>
        <div>
            <input type="submit" name="submit">
        </div>
    </form>
</div>
</body>
</html>

 

上一篇:Angular响应式表单


下一篇:react antd form Item嵌套问题