案例-使用JS完成表单的校验

使用JS完成表单的校验


1. 案例需求

在这里插入图片描述

  • 用户名输入框、手机号码 , 失去焦点进行校验

  • 用户名:只能由英文字母和数字组成,长度为4~16个字符,并且以英文字母开头

  • 手机号:以1开头, 第二位是3,4,5,7,8的11位数字 /^1[34578]\d{9}$/

2.思路分析

  1. 给用户名输入框设置获得焦点事件
<input type="text" onfocus="showTips()"/>
  1. 创建showTips()函数提示
function showTips(){
	//1.获得用户名输入框后面的span标签
	//2.调用innerHTML插入提示
}
  1. 给用户名输入框设置失去焦点事件
<input type="text" onblur="checkUsername()"/>
  1. 创建checkUsername()函数
function checkUsername(){
	//1.获得用户输入的用户名
	//2.使用正则表达式进行校验
	//3.判断是否符合规则, 提示
}

3.代码实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>验证注册页面</title>
        <style type="text/css">
			body {
				margin: 0;
				padding: 0;
				font-size: 12px;
				line-height: 20px;
			}
			.main {
				width: 525px;
				margin-left: auto;
				margin-right: auto;
			}
			.hr_1 {
				font-size: 14px;
				font-weight: bold;
				color: #3275c3;
				height: 35px;
				border-bottom-width: 2px;
				border-bottom-style: solid;
				border-bottom-color: #3275c3;
				vertical-align: bottom;
				padding-left: 12px;
			}
			.left {
				text-align: right;
				width: 80px;
				height: 25px;
				padding-right: 5px;
			}
			.center {
				width: 280px;
			}
			.in {
				width: 130px;
				height: 16px;
				border: solid 1px #79abea;
			}

			.red {
				color: #cc0000;
				font-weight: bold;
			}

			div {
				color: #F00;
			}
        </style>
        <script type="text/javascript">
        </script>
    </head>

    <body>
        <form action="#" method="post" id="myform" onsubmit="return checkForm()">
            <table class="main" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td><img src="img/logo.jpg" alt="logo" /><img src="img/banner.jpg" alt="banner" /></td>
                </tr>
                <tr>
                    <td class="hr_1">新用户注册</td>
                </tr>
                <tr>
                    <td style="height:10px;"></td>
                </tr>
                <tr>
                    <td>
                    <table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                            <td class="left">用户名:</td>
                            <td class="center">
                                <!--给用户名输入框绑定失去焦点事件-->
                                 <input id="username" name="user" type="text" class="in" onblur="checkUsername(this.value)"/>
                                 <span id="usernamespan" style="color: red">

                                 </span>
                            </td>
                        </tr>
                        <tr>
                            <td class="left">密码:</td>
                            <td class="center">
                            <input id="pwd" name="pwd" type="password" class="in" />
                            </td>
                        </tr>
                        <tr>
                            <td class="left">确认密码:</td>
                            <td class="center">
                            <input id="repwd" name="repwd" type="password" class="in"/>
                            </td>
                        </tr>
                        <tr>
                            <td class="left">电子邮箱:</td>
                            <td class="center">
                            <input id="email" name="email" type="text" class="in"/>
                            </td>
                        </tr>
                        <tr>
                           <!--1开头, 第二为是3,4,5,7,811位数字-->
                            <td class="left">手机号码:</td>
                            <td class="center">
                                <!--手机号输入框绑定失去焦点事件-->
                                 <input id="mobile" name="mobile" type="text" class="in" onblur="checkPhone(this.value)"/>
                                 <span id="mobilespan" style="color: red"></span>
                            </td>
                        </tr>
                        <tr>
                            <td class="left">生日:</td>
                            <td class="center">
                            <input id="birth" name="birth" type="text" class="in"/>
                            </td>
                        </tr>
                        <tr>
                            <td class="left">&nbsp;</td>
                            <td class="center">
                            <input name="" type="image" src="img/register.jpg" />
                            </td>
                        </tr>
                    </table></td>
                </tr>
            </table>
        </form>
    <script>
        //声明一个校验用户名的方法
        function checkUsername(value) {
            //使用正则表达式校验用户名
            //只能由英文字母和数字组成,长度为4~16个字符,并且以英文字母开头
            //1. 编写一个正则表达式
            var reg = /^[a-zA-Z][a-zA-Z0-9]{3,15}$/
            //2. 使用正则表达式取校验用户名
            if (reg.test(value)) {
                //校验通过
                //1. 找到用户名输入框后面的那个span
                var element = document.getElementById("usernamespan");
                //2. 设置span的标签体的内容是一个图片标签
                element.innerHTML = "<img src='img/gou.png' width='35' height='15\'/>"
            }else {
                //校验不通过
                //1. 找到用户名输入框后面的那个span
                var element = document.getElementById("usernamespan");
                //2. 设置span的标签体的内容为"用户名格式不正确"
                element.innerHTML = "用户名格式不正确"
            }
        }


        function checkPhone(value) {
            //1. 声明一个正则表达式:以1开头, 第二位是3,4,5,7,8的11位数字
            var reg = /^[1][34578][0-9]{9}$/
            //2. 使用正则表达式校验手机号
            if (reg.test(value)) {
                //校验通过
                //找到手机号输入框后面的span
                var element = document.getElementById("mobilespan");
                //设置span中的内容为钩的图片
                element.innerHTML = "<img src='img/gou.png' width='35' height='15\'/>"
            }else {
                //校验不通过
                //找到手机号输入框后面的span
                var element = document.getElementById("mobilespan");
                //设置span中的内容为手机号格式不正确
                element.innerHTML = "手机号格式不正确"
            }
        }
    </script>
    </body>
</html>

4,小结

  1. 获得和失去焦点
  2. 函数
  3. 操作标签体
  4. 获得标签, 获得标签的value
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值