jQuery validation Plugin用法

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
    <style>
        label.error{
            color:red;
        }
        input.error { border: 1px solid red; }
        input.valid { border: 1px solid green; }
    </style>
</head>

<body>
    <form action="" id="test">
        <p><input type="text" placeholder="用户名" name="username" id=""></p>
        <p><input type="password" placeholder="密码" name="password" id=""></p>
        <p><input type="password" placeholder="重复密码" name="repassword" id=""></p>
        <p><input type="submit" value="提交"></p>
    </form>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.0/dist/jquery.validate.js"></script>
    <script src="./messages_zh.min.js"></script>
    <script>
        // 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]);
        // }, $.validator.format("请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)")); //自定义验证方法
        // $.validator.setDefaults({}); //对所有表单设置
        $.validator.addMethod("imUserName", function (value, element) {
            return this.optional(element) || /^(?![0-9])[a-z0-9_]{3,30}$/.test(value);
        }, "用户名只可包含小写字母、数字、_,且不能以数字开头");
        $("#test").validate({
            // debug: true, //进行调试模式(表单不提交)
            // submitHandler: function () {
            //     // alert("提交事件!");
            // }
            // errorPlacement: function (error, element) {
            //     error.appendTo(element.parent());
            // } //更改错误信息显示的位置
            // ignore: ".ignore" //忽略某些元素不验证
            // errorClass: "error", //指定错误提示的 css 类名,默认error
            // errorElement: "label", //用什么标签标记错误,默认是 label
            // errorLabelContainer: $("#signupForm div.error"), //把错误信息统一放在一个容器里面
            // wrapper : "li", //用什么标签再把上边的 errorELement 包起来。
            // success:String,Callback, //如果跟一个字符串,会当作一个 css 类,如果是函数,表示验证后的动作。
            // groups: {
            //     username: "fname lname"
            // },
            // errorPlacement:function, //对一组元素的验证,用一个错误提示,用 errorPlacement 控制把出错信息放在哪里
            // OnSubmit:类型 Boolean,默认 true,指定是否提交时验证
            // onfocusout:类型 Boolean,默认 true,指定是否在获取焦点时验证
            // onkeyup:类型 Boolean,默认 true,指定是否在敲击键盘时验证
            // onclick:类型 Boolean,默认 true,指定是否在鼠标点击时验证(一般验证 checkbox、radiobox)
            // focusInvalid:类型 Boolean,默认 true。提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点
            // focusCleanup:类型 Boolean,默认 false。当未通过验证的元素获得焦点时,移除错误提示(避免和 focusInvalid 一起使用)
            // showErrors:跟一个函数,可以显示总共有多少个未通过验证的元素
            // errorPlacement:跟一个函数,可以自定义错误放到哪里
            // highlight:可以给未通过验证的元素加效果、闪烁等
            success: "valid",
            rules: {
                username: {
                    required: true,
                    rangelength: [4, 10],
                    imUserName: true,
                    remote: {
                        url: "./user.php", //后台处理程序
                        type: "get", //数据发送方式
                        dataType: "json", //接受数据格式
                        data: { //要传递的数据
                            username: function () {
                                return $("#username").val();
                            }
                        }
                    }, //异步验证
                },
                password: {
                    required: true,
                    minlength: 6
                },
                repassword: {
                    required: true,
                    equalTo: "#password",
                    // required(dependency-expression) //必填元素依赖于表达式的结果
                    // required(dependency-callback) //必填元素依赖于回调函数的结果
                    // minlength() //设置最小长度
                    // maxlength() //设置最大长度
                    // min() //设置最小值
                    // max() //设置最大值
                    // range() //设置值的范围
                    // email() //验证电子邮箱格式   
                    // url() //验证 URL 格式
                    // date() //验证日期格式
                    // dateISO() //验证 ISO 类型的日期格式
                    // dateDE() //验证德式的日期格式
                    // number() //验证十进制数字
                    // digits() //验证整数
                    // creditcard() //验证信用卡号
                    // accept(extension) //验证相同后缀名的字符串
                    // equalTo(other) //验证两个输入框的内容是否相同
                    // phoneUS() //验证美式的电话号码
                }
            },
            messages: {
                username: {
                    required: "请输入用户名",
                    remote: "用户名已存在"
                },
                password: {
                    required: "请输入密码",
                    minlength: "密码至少六位"
                }
            }
        });
    </script>
</body>

</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容