247、(案例)javaScript对象--注册表单升级,添加表单校验(利用正则表达式)

1、给表单添加校验功能,当用户输入完成后切换到下一个表格时会检查输入是否正确。

2、用户提交表单时会做一次总的检查。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册页面、‘</title>
<!--    1、页面是一个注册页面,包含一些注册信息-->
<!--    2、会对某些选项进行校验-->
<!--    3、提交是如果存在错误项,就不会提交,除非全部正确-->


<!--    注意:如果将一个函数赋值给一个变量,千万不能带后面(),因为它相当于一个函数对象,直接赋值对象就行,比如:-->
<!--    document.getElementById("username").onblur = checkUsername;-->
<!--    不能写成-->
<!--    document.getElementById("username").onblur = checkUsername();-->
<!--    其中checkUsername是个预先定义的函数;-->
    <style>
        *{
            margin: 0;
            padding:0;
            box-sizing: border-box;
        }
        body{
            background: url("img/register_bg.png") no-repeat center;
        }

        .rg_layout{
            border: 6px #e0e0e0 solid ;
            width: 900px;
            height: 500px;
            /*使用auto会自动水平居中*/
            margin: auto;
            margin-top: 20px;
            background: white;
        }

        .rg_left{
            /border: 1px red solid;
            float: left;
            margin: 25px;
            font-size: 20px;
        }
        /*左边框 pb标签的第一个元素*/
        .rg_left p:first-child{
            color: #ffcc00;
        }
        .rg_left p:last-child{
            color: #999999;
            margin-top: 3px;
        }
        .rg_center{
            /*border: 1px red solid;*/
            float: left;
            margin-top: 15px;
            height: 450px;
            width: 400px;
        }
        .rg_center .td_left{
            text-align: right;
            width: 100px;
            height: 45px;

        }
        .rg_center .td_right{
            padding-left: 20px;
        }

        #username,#password,#email,#name,#tel,#birthday{
            width: 200px;
            height: 30px;
            border: 1px #999999 solid ;
            border-radius: 5px;
            padding-left: 10px;
        }
        #checkcode{
            width: 130px;
            height: 30px;
            border: 1px #999999 solid ;
            /*圆角*/
            border-radius: 5px;
            /*内边距*/
            padding-left: 10px;
        }
        #img_check{
            vertical-align: middle;
        }
        #in_submit{
            width: 130px;
            height: 40px;
            background: #FFD026;
            border-radius: 5px;
            margin-right: 10px;
        }
        .rg_right{
             /*border: 1px red solid;*/
            float: right;
            margin: 15px;

         }
        .rg_right p{
            font-size: 12px;
        }
        .rg_right a{
            color: red;
        }
        .error{
            color: red;
            width: 100px;
        }
    </style>

    <script>
        // 1、添加页面加载完成时间,以便控制流程
        window.onload = function () {
            //2、给提交按钮添加onsumit事件
            document.getElementById("in_submit").onsubmit = function () {
                //对需要检验的表单进行校验
                return checkUsername() && checkPaswword() && checkEmail();
            }

            //3、给各个输入项切换到下一个输入项时做校验
            document.getElementById("username").onblur = checkUsername;
            document.getElementById("password").onblur = checkPaswword;
            document.getElementById("email").onblur = checkEmail;
        }
        function checkUsername(){
            //先获取表单的内容
            var use_value = document.getElementById("username").value;
            //定义正则表达式
            var tab_regexp = /^\w{3,6}$/;
            var flag = tab_regexp.test(use_value);
            var emt_span = document.getElementById("sp_username");
            if (flag){

                emt_span.innerHTML = "<img  width='60px' height='25px'  src='img/gou.png'>";
            }
            else
            {
                emt_span.innerHTML = "用户名格式错误";
            }
            return flag;
        }

        function checkPaswword(){
            //先获取表单的内容
            var password_value = document.getElementById("password").value;
            //定义正则表达式
            var tab_regexp = /^w{6}$/;
            var flag =  tab_regexp.test(password_value);
            var emt_span = document.getElementById("sp_password");
            if (flag){

                emt_span.innerHTML = "<img  width='60px' height='25px'  src='img/gou.png'>";
            }
            else
            {
                emt_span.innerHTML = "用户名格式错误";
            }
            return flag;
        }
        function checkEmail(){
            //先获取表单的内容
            var email_value = document.getElementById("email").value;
            //定义正则表达式
            var tab_regexp = /^w{3,6}$/;
            var falg =  tab_regexp.test(email_value);
            var emt_span = document.getElementById("sp_email");
            if (flag){

                emt_span.innerHTML = "<img  width='60px' height='25px'  src='img/gou.png'>";
            }
            else
            {
                emt_Span.innerHTML = "用户名格式错误";
            }
            return flag;
        }
    </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 action="#" method="post">
                    <table >
                        <tr>
                            <td class="td_left"><label for="username">用户名</label></td>
                            <td class="td_right"><input type="text" name="username" id="username" placeholder="请输入用户名"> </td>
                            <td><span id="sp_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="请输入密码"></input></td>
                            <td><span id="sp_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="请输入email"></input></td>
                            <td><span id="sp_email" class="error"></span></td>
                        </tr>

                        <tr>
                            <td class="td_left"><label for="name">姓名</label></td>
                            <td class="td_right"><input type="text" name="name" id="name" placeholder="请输入真实姓名"></input></td>
                        </tr>

                        <tr>
                            <td class="td_left"><label for="tel">手机号</label></td>
                            <td class="td_right"><input type="text" name="tel" id="tel" placeholder="请输入email"></input></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="fmale">女
                            </td>
                        </tr>

                        <tr>
                            <td class="td_left"><label for="birthday">出生日期</label></td>
                            <td class="td_right"><input type="date" name="birthday" id="birthday"></td>
                        </tr>

                        <tr>
                            <td class="td_left"><label for="checkcode">验证码</label></td>
                            <td class="td_right">
                                <input type="text" name="checkcode" id="checkcode">
                                <img id="img_check" src="img/verify_code.jpg">
                            </td>
                        </tr>

                        <tr>
                            <td colspan="2" align="center">
                                <input id="in_submit" type="submit" value="注册">
<!--                                <input type="image" src="img/regbtn.jpg">-->
                            </td>
                        </tr>

                    </table>
                </form>
            </div>
        </div>

        <div class="rg_right">
            <p>已有账号?<a href="#">新用户注册</a></p>
        </div>
    </div>

</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值