• 案例:表单校验


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
        <style>
            * {
                margin: 0px;
                padding: 0px;
                box-sizing: border-box;
            }
    
            body {
                background: url("img/register_bg.png") no-repeat center;
                padding-top: 25px;
            }
    
            .rg_layout {
                 900px;
                height: 500px;
                border: 8px solid #EEEEEE;
                background-color: white;
                /*让div水平居中*/
                margin: auto;
            }
    
            .rg_left {
                /*border: 1px solid red;*/
                float: left;
                margin: 15px;
            }
    
            .rg_left > p:first-child {
                color: #FFD026;
                font-size: 20px;
            }
    
            .rg_left > p:last-child {
                color: #A6A6A6;
                font-size: 20px;
    
            }
    
            .rg_center {
                float: left;
                /* border: 1px solid red;*/
    
            }
    
            .rg_right {
                /*border: 1px solid red;*/
                float: right;
                margin: 15px;
            }
    
            .rg_right > p:first-child {
                font-size: 15px;
    
            }
    
            .rg_right p a {
                color: pink;
            }
    
            .td_left {
                 100px;
                text-align: right;
                height: 45px;
            }
    
            .td_right {
                padding-left: 50px;
            }
    
            #username, #password, #email, #name, #tel, #birthday, #checkcode {
                 251px;
                height: 32px;
                border: 1px solid #A6A6A6;
                /*设置边框圆角*/
                border-radius: 5px;
                padding-left: 10px;
            }
    
            #checkcode {
                 110px;
            }
    
            #img_check {
                height: 32px;
                vertical-align: middle;
            }
    
            #btn_sub {
                 150px;
                height: 40px;
                background-color: #FFD026;
                border: 1px solid #FFD026;
            }
    
            .error {
                color: red;
            }
    
            #td_sub {
                padding-left: 150px;
            }
    
        </style>
    
        <script>
            /*
            * 分析
            *   1.给表单绑定onsubmit事件
            *       如果都为true,则监听器方法返回true
            *       如果有一个为false,则监听器方法返回false
            *   2.定义一些方法,校验各个表单项
            *   3.给各个表单项,绑定onblur事件。
            *
            *   性别可以加一个checked默认值
            *   日期不为空,不校验都行
            * */
    
            window.onload = function () {
                //1.给表单绑定onsubmit事件,提交事件
                document.getElementById("form").onsubmit = function () {
                    //调用用户名校验方法 chekUsername();
                    //调用密码校验方法  chekPassword();
    
                    //通过返回值来决定方法是否提交
                    return chekUsername() && chekPassword();
                };
    
                //2.给用户名绑定离开焦点事件,失去焦点执行
                document.getElementById("username").onblur=chekUsername;
    
                //3.给密码绑定离开焦点事件,失去焦点执行
                document.getElementById("password").onblur=chekPassword;
            };
    
            //校验用户名
            function chekUsername() {
                //1.获取用户名的值
                var username = document.getElementById("username").value;
                //2.正则表达
                var reg_username = /^w{6,12}$/;
                //3.判断值是否符合的规则,value属性设置或返回文本value的值
                var falg = reg_username.test(username);
                //4.提示信息
                var s_username = document.getElementById("s_username");
                if (falg) {
                    //提示绿色的对勾
                    s_username.innerHTML = "<img src='img/gou.png' width='35px' height='25px'>";
                } else {
                    //提示红色的用户名有误
                    s_username.innerHTML = "用户名格式有误";
                }
            }
    
            //校验密码
            function chekPassword() {
                //1.获取用户名的值
                var password = document.getElementById("password").value;
                //2.正则表达
                var reg_password = /^w{6,12}$/;
                //3.判断值是否符合的规则,value属性设置或返回文本value的值
                var falg = reg_password.test(password);
                //4.提示信息
                var s_password = document.getElementById("s_password");
                if (falg) {
                    //提示绿色的对勾
                    s_password.innerHTML = "<img src='img/gou.png' width='35px' height='25px'>";
                } else {
                    //提示红色的用户名有误
                    s_password.innerHTML = "密码格式有误";
                }
            }
    
        </script>
    
    </head>
    <body>
    
    <div class="rg_layout">
        <div class="rg_left">
            <p>新用户注册</p>
            <p>USER REGISTER</p>
    
        </div>
    
        <div class="rg_center">
            <div class="rg_form">
                <!--定义表单 form-->
                <form action="#" id="form" method="get">
                    <table>
                        <tr>
                            <td class="td_left"><label for="username">用户名</label></td>
                            <td class="td_right">
                                <input type="text" name="username" id="username" placeholder="请输入用户名">
                                <span id="s_username" class="error"></span>
                            </td>
                        </tr>
    
                        <tr>
                            <td class="td_left"><label for="password">密码</label></td>
                            <td class="td_right">
                                <input type="password" name="password" id="password" placeholder="请输入密码">
                                <span id="s_password" class="error"></span>
                            </td>
                        </tr>
    
                        <tr>
                            <td class="td_left"><label for="email">Email</label></td>
                            <td class="td_right"><input type="email" name="email" id="email" placeholder="请输入邮箱"></td>
                        </tr>
    
                        <tr>
                            <td class="td_left"><label for="name">姓名</label></td>
                            <td class="td_right"><input type="text" name="name" id="name" placeholder="请输入姓名"></td>
                        </tr>
    
                        <tr>
                            <td class="td_left"><label for="tel">手机号</label></td>
                            <td class="td_right"><input type="text" name="tel" id="tel" placeholder="请输入手机号"></td>
                        </tr>
    
                        <tr>
                            <td class="td_left"><label>性别</label></td>
                            <td class="td_right">
                                <input type="radio" name="gender" value="male" checked><input type="radio" name="gender" value="female"></td>
                        </tr>
    
                        <tr>
                            <td class="td_left"><label for="birthday">出生日期</label></td>
                            <td class="td_right"><input type="date" name="birthday" id="birthday" placeholder="请输入出生日期">
                            </td>
                        </tr>
    
                        <tr>
                            <td class="td_left"><label for="checkcode">验证码</label></td>
                            <td class="td_right"><input type="text" name="checkcode" id="checkcode" placeholder="请输入验证码">
                                <img id="img_check" src="img/verify_code.jpg">
                            </td>
                        </tr>
    
    
                        <tr>
                            <td colspan="2" id="td_sub"><input type="submit" id="btn_sub" value="注册"></td>
                        </tr>
                    </table>
    
                </form>
    
    
            </div>
    
        </div>
    
        <div class="rg_right">
            <p>已有账号?<a href="#">立即登录</a></p>
        </div>
    
    
    </div>
    
    
    </body>
    </html>
  • 相关阅读:
    20000+关注,开源两本硬核的原创电子书!
    Tail Latency学习
    Zabbix5.0 监控redis
    JAVA多线程(九) ForkJoin框架
    JAVA多线程(八) Condition源码分析
    程序员英语学习(二) 标点符号对应的英语单词汇总
    linux shell快速入门
    Ubuntu常用指令和快捷键汇总
    Win10常用快捷键汇总
    算法路漫漫(三) 荷兰国旗
  • 原文地址:https://www.cnblogs.com/rijiyuelei/p/12380034.html
Copyright © 2020-2023  润新知