zoukankan      html  css  js  c++  java
  • 使用JQuery完成表单的校验(扩展)

    使用JQuery完成表单的校验(扩展)

    事件:
    ​ 获得焦点事件: onfocus
    ​ 失去焦点事件: onblur
    ​ 按键抬起事件: onkeyup
    ​ 鼠标移入: onmouseenter
    ​ 鼠标移出: onmouseout

    JS引入外部文件 : script标签

    需求分析

    在用户提交表单的时候, 我们最好是能够在用户数据提交给服务器之前去做一次校验,防止服务器压力过大,并且需要给用户一个友好提示

    技术分析

    • trigger : 触发事件,但是会执行类似浏览将光标移到输入框内的这种浏览器默认行为
    • triggerHandler : 仅仅只会触发事件所对应的函数
    • is()

    步骤分析

    1. 首先给必填项,添加尾部添加一个小红点
    2. 获取用户输入的信息,做相应的校验
    3. 事件: 获得焦点, 失去焦点, 按键抬起
    4. 表单提交的事件

    代码实现

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" href="css/style.css"/>
        <title></title>
        <!--
            1. 首先给必填项,添加尾部添加一个小红点
            2. 获取用户输入的信息,做相应的校验
            3. 事件: 获得焦点, 失去焦点, 按键抬起
            4. 表单提交的事件
    
            Jq的方式来实现:
                1. 导入JQ的文件
                2. 文档加载事件: 在必填项后天加一个小红点
                3. 表单校验确定事件: blur focus keyup
                4. 提交表单 submit
        -->
        <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
        <script>
    
            $(function () {//默认做一些页面初始化
                // 在所有必填项后天加一个小红点 *
                $(".bitian").after("<font class='high'>*</font>");
    
                //给必填项绑定事件
                $(".bitian").blur(function () {
    
                    //首先获取用户当前输入的值
    //					var value = this.value;
                    var value = $(this).val();
    
                    //清空当前必填项后面的span
    //					$(".formtips").remove();
                    $(this).parent().find(".formtips").remove();
    
                    //获得当前事件是谁的
                    if ($(this).is("#username")) { //判断是否是用户名输入项
                        //校验用户名
                        if (value.length < 6) {
                            $(this).parent().append("<span class='formtips onError'>用户名太短了</span>");
                        } else {
                            $(this).parent().append("<span class='formtips onSuccess'>用户名够用</span>");
                        }
                    }
    
                    if ($(this).is("#password")) {//判断是否是密码输入项
                        //校验密码
                        if (value.length < 3) {
                            $(this).parent().append("<span class='formtips onError'>密码太短了</span>");
                        } else {
                            $(this).parent().append("<span class='formtips onSuccess'>密码够用</span>");
                        }
                    }
                }).focus(function () {
                    $(this).triggerHandler("blur");
                }).keyup(function () {
                    $(this).triggerHandler("blur");
                });
    
    //				$(".bitian").blur(function(){}).focus(function(){}).keyup(function(){})
    
                //给表单绑定提交事件
                $("form").submit(function () {
                    //触发必填项的校验逻辑
                    $(".bitian").trigger("focus");
                    //找到错误信息的个数
                    var length = $(".onError").length
                    if (length > 0) {
                        return false;
                    }
                    return true;
                });
            });
    
        </script>
    </head>
    
    <body>
    <form action="index.html">
        <div>
            用户名:<input type="text" class="bitian" id="username"/>
        </div>
        <div>
            密码:<input type="password" class="bitian" id="password"/>
        </div>
        <div>
            手机号:<input type="tel"/>
        </div>
        <div>
            <input type="submit"/>
        </div>
    </form>
    </body>
    </html>
    
    
  • 相关阅读:
    清除浮动
    svg自己记得文档
    CSS3最颠覆性的动画效果,基本属性[过渡和2D]
    下载svg图片转化为字体使用!!!!!!
    CSS3 Transform的perspective属性【转载,自己学习使用】
    CSS炫酷样式,不断编辑更新...
    VC++ GDI+编程的字体和文本绘制
    图像处理常用算法
    详细解说STL hash_map系列
    微软公司软件开发模式简介 收藏
  • 原文地址:https://www.cnblogs.com/zllk/p/12841896.html
Copyright © 2011-2022 走看看