表单验证插件jquery-validation以及案例

简介: 表单验证插件jquery-validation以及案例

表单验证插件jquery-validation以及案例


1,获取并引入:

(1)获取:官网:https://jqueryvalidation.org/

home】-》【files】-》【Download】-》【jquery-validation-1.19.3.zip/Source code(zip)】

-》解压,使用的最关键的【dist 文件】-》只要下面四个文件


11.png


ps:min.js 是压缩版本的,一般项目上线直接使用压缩版本的,练习的话随意~

 

 

(2) 引入顺序,一定要:先引入jquery.js;  然后是 jquery.validate.js; 最后是 additional-methods.js

12.png


2, 将表单(表单 form元素 有id = "register-form")与插件进行绑定:$(‘#register-form’).validate({ });

 

3, 了解插件的使用:官网:【DOCUMENTATION】->【Plugin Methods】-》[有非常多的属性:使用方式都可以参照给的示例]-

{ • debug:true;~调试模式,不提交表单  

 • onsubmit:true;~提交表单时做校验

 • submitHandler~表单验证通过后,不提交表单,而是手动处理逻辑

 • rules~ 指定表单验证规则【key:是元素; value:是要求; 要求可以查看官网,在【Methods】:

                                              例如step 等等,有什么作用,可以翻译一下,或者在案例下测试一下】

    常见规则: requiredtrue

                       ▷ 自定义规则

 • validClass~ 调整验证通过时的类样式名称

 • errorElement~修改错误信息出现的元素,默认错误信息提示出现在label里,html中有for绑定的好处

• messages~设定对应规则验证错误提示文字(messages 是键值对形式,key是元素,value是规则~jquery自带,或者自自定义的规则)

• success~设定验证通过时的提示

}

 

4,使用示例代码:

❀ login_jqueryvalidation.js

$(function () {
    //使用jqueryvalidation验证表单
    $('#register').validate({
        debug:true,
        // onsubmit:true,
        rules:{
            'mobiePhone': {
                required: true,
                //自定义的规则mobile_phone 启动true
                mobile_phone:true
            },
        },
        //验证格式错误时文本提示
        messages:{
            'mobiePhone': {
                required:'手机号码不能为空',
                mobile_phone:'手机号码格式错误'
            }
        },
        validClass: 'success',
        //验证通过时的文本提示
        success:function (error,element) {
           let tip = '';
           switch (element.name){
               case 'mobiePhone':
                   tip ='手机号码正确';
               break;
           }
           error.text(tip).addClass('success');
        }
    });
});


5,其他的代码:

❀ custValidation.js

/**
* 功能:自定义正则表达式验证手机号码等通用格式
* 作者:一乐
* 时间:2021/8/9
* 地点:一乐乐家园
*/
$(function () {
    $.validator.addMethod( 'mobile_phone', function( value ) {
        let reg = /^1[3458]\d{9}/;
        return reg.test(value);
    });
});


login_jqueryvalidation.html


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用jqueryvalidation插件</title>
    <!--
        . 表示当前目录
        .. 表示当前目录的上一级目录。
        ./表示当前目录下的某个文件或文件夹,视后面跟着的名字而定
        ../表示当前目录上一级目录的文件或文件夹,视后面跟着的名字而定。
     -->
    <link rel="stylesheet" type="text/css" href="../css/login_jqueryvalidation.css">
</head>
<body>
<section>
    <div class="container" >
        <div class="logn">
            <form id="register" method="post">
                <h1>注册账号</h1>
                <div class="ipt-box">
                    <label for="mobiePhone">手机号码</label>
                    <div class="right">
                        <input type="text" name="mobiePhone" id="mobiePhone" placeholder="请输入手机号码" autocomplete="off"/>
                    </div>
                </div>
                <div class="ipt-box">
                    <label for="idCard">身份证号码</label>
                    <div class="right">
                        <input type="text" name="idCard" id="idCard" placeholder="请输入身份证号码" autocomplete="off"/>
                   </div>
                </div>
                <div class="ipt-box">
                    <label for="pwd">登录密码</label>
                    <div class="right">
                        <input type="password" name="pwd" id="pwd" placeholder="请输入登录密码" autocomplete="off"/>
                    </div>
                </div>
                <div class="ipt-box">
                    <label for="re-pwd">确认密码</label>
                    <div class="right">
                        <input type="password" name="re-pwd" id="re-pwd" placeholder="请再次输入登录密码" autocomplete="off"/>
                    </div>
                </div>
                <div class="ipt-box">
                    <label for="vali-code">验证码</label>
                    <div class="right">
                        <div class="code">
                            <input type="text" name="vali-code" id="vali-code" autocomplete="off">
                            <label class="codeLb">获取验证码</label>
                        </div>
                    </div>
                </div>
                <div class="registerBtn">
                    <input type="submit" value="注册"/>
                </div>
            </form>
        </div>
    </div>
</section>
</body>
<script type="text/javascript" src="../js/jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-validation/jquery.validate.min.js"></script>
<script type="text/javascript" src="../js/jquery-validation/additional-methods.min.js"></script>
<script type="text/javascript" src="../js/custValidation.js"></script>
<script type="text/javascript" src="../js/login_jqueryvalidation.js"></script>
</html>


login_jqueryvalidation.css


body{
    margin:0;
    background-color: #b7f1e4;
}
.container{
    width: 500px;
    margin: 50px auto;
    background-color: white;
    padding: 15px;
    box-sizing: border-box;
}
/* 文本 ~居中*/
h1{
    text-align: center;
}
/* 左边提示文本 */
.ipt-box {
    display: flex;
    justify-content: space-between;
    margin: 5px 0;
    box-sizing: border-box;
}
.ipt-box >label{
    display: inline-block;
    width: 100px;
    height: 20px;
    text-align: justify;
    overflow: hidden;
}
.ipt-box > label:after{
    display: inline-block;
    content: '';
    width: 100%;
}
/* 右边输入框 */
.ipt-box .right{
    width: calc(95% - 100px);
}
.ipt-box input{
    width: 100%;
    height: 30px;
    border: 1px solid #cecccd;
    outline: none;
    border-radius: 4px;
    box-sizing: border-box;
    text-indent: 0.6em;
    /* 添加靠近时的过渡动画效果 */
    transition: all .3s linear;
}
.ipt-box input::placeholder{
    color: #cecccd;
}
.ipt-box input:hover{
    border: 1px solid #40a9ff;
}
.ipt-box input:focus {
    border: 1px solid #40a9ff;
    box-shadow: 0 0 0 2px #d1e9ff;
}
/* 输入框error时 */
.ipt-box input.error{
    border: 1px solid #e22018;
    box-shadow: 0 0 0 2px #eec7b9;
}
/* 输入框success时 */
.ipt-box input.success{
    border: 1px solid #91cdad;
    box-shadow: 0 0 0 1px #91cdad;
}
/* 输入框error时文本提示 */
.ipt-box .right label.error{
    color: #eec7b9;
    font-size: 13px;
}
/* 输入框success时文本提示 */
.ipt-box .right label.success{
    color: #91cdad;
    font-size: 13px;
}
/* 最后一行的验证码 */
.ipt-box .right .code{
    width: 100%;
    display: flex;
    justify-content: space-between;
}
#vali-code{
    width:40%;
}
.ipt-box .right .codeLb{
    display: inline-block;
    width: 80px;
    height: 30px;
    border-radius: 4px;
    background-color: #1890ff;
    color: white;
    font-size: 12px;
    line-height: 30px;
    text-align: center;
}
/* 注册 */
.registerBtn {
    width: 350px;
    height: 30px;
    margin: 30px auto;
}
/* label 标签是行级,设置大小无效 */
.registerBtn > input{
    display: inline-block;
    width: 100%;
    height: 100%;
    outline: none;
    border: none;
    background-color: #1890ff;
    background-size: 100px;
    border-radius: 4px;
    color: white;
    font-size: 12px;
    line-height: 30px;
    text-align: center;
}


ps:案例中的小细节:

1,文字是 (有间隔的形式~ 实现justify,注意justify的前提是最后一行之上的内容  ~ 且行块布局设置一下大小)

【label 中文字的每个有间距的显示样式】

13.png


2,发现某个元素使用了jquery-validate插件加入规则要求后,那个元素会添加上class=“error”;

同时html页面会多一个label的文字提醒元素,class也是error。

咱就可以通过css,设置加入规则要求错误时的样式显示:


14.png


3,自定义通用的验证要求方法:咱封装到一个文件~custom-methods.js

(1)复制additional-methods.js文件 中的$validator.addMethod…方法声明;

(2)参数变量‘name’~自定义约束的属性,约束规则写到function里;~返回值是布尔类型的

~~~这样就成功自定义一个规则要求了


目录
相关文章
|
6月前
|
JavaScript
jquery动画与事件案例
jquery动画与事件案例
|
1月前
|
JavaScript
jQuery 树型菜单插件(Treeview)
jQuery 树型菜单插件(Treeview)
59 2
|
5月前
|
设计模式 JavaScript 前端开发
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
61 1
|
1月前
|
JavaScript 前端开发
jQuery Growl 插件(消息提醒)
jQuery Growl 插件(消息提醒)
41 4
jQuery Growl 插件(消息提醒)
|
1月前
|
存储 JSON JavaScript
jQuery Cookie 插件
jQuery Cookie 插件
40 4
jQuery Cookie 插件
|
11天前
|
JavaScript 定位技术
jQuery鹰眼视图小地图定位预览插件minimap.js
这是一个jQuery小地图定位预览视图,默认左侧是页面主要内容,minimap.js的好处就是在它的右侧形成一个快速定位通道,产生一个缩小版的页面,即预览效果,可以点击并快速定位到页面的某个位置。简单实用,欢迎下载!
24 0
|
1月前
|
移动开发 JSON 数据可视化
精选八款包括可视化CMS,jquery可视化表单,vue可视化拖拉,react可视化源码
精选八款包括可视化CMS,jquery可视化表单,vue可视化拖拉,react可视化源码
43 0
|
3月前
|
前端开发 JavaScript Java
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
关于如何在SpringBoot项目中结合JQuery和Ajax实现表单数据的传输以及单文件或多文件上传的教程。文章提供了完整的前后端示例代码,包括项目的`pom.xml`依赖配置、SpringBoot的启动类`App.java`、静态资源配置`ResourceConfig.java`、配置文件`application.yml`、前端HTML页面(单文件上传和多文件上传加表单内容)以及后端控制器`UserController.java`。文章最后展示了运行结果的截图。
142 0
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
|
3月前
|
Devops 持续交付 测试技术
JSF遇上DevOps:开发流程将迎巨变?一篇文章带你领略高效协同的魅力!
【8月更文挑战第31天】本文探讨了如何在JavaServer Faces(JSF)开发中融入DevOps文化,通过持续集成与部署、自动化测试、监控与日志记录及反馈机制,提升软件交付速度与质量。文中详细介绍了使用Jenkins进行自动化部署、JUnit与Selenium进行自动化测试、ELK Stack进行日志监控的具体方法,并强调了持续改进的重要性。
38 0
|
3月前
|
JavaScript 前端开发 数据安全/隐私保护
Validform jQuery插件详解
【8月更文挑战第21天】