此注册页面,需要用户输入11位手机号和正确验证码。随机获取验证码,并对手机号长度和验证码进行校验,校验正确方可显示注册成功。同时,60秒内不能重复获取验证码。
演示
![](https://i-blog.csdnimg.cn/blog_migrate/9c322526b108ad58b3b4047c23a39353.jpeg)
HTML源代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="./css/common.css">//连接
<style>
body {
background: url(./img/login_bgc.jpg) no-repeat top center;
}
.login-logo {
width: 93px;
height: 92px;
margin: 20px auto;
}
.wrap {
margin: 0 auto;
width: 380px;
background-color: #fff;
padding: 38px 0 22px;
font-size: 12px;
color: #999;
border-radius: 5px;
}
.wrap input {
box-sizing: border-box;
display: block;
width: 300px;
height: 40px;
margin-bottom: 18px;
padding-left: 17px;
border: 1px solid #cecece;
border-radius: 5px;
}
input::-webkit-input-placeholder {
/* WebKit browsers */
color: #cecece;
}
.box {
margin: 0 39px;
}
.box p {
text-align: right;
margin: 14px 0;
color: #cecece;
}
.box p>a {
color: #999;
}
.box button {
box-sizing: border-box;
display: block;
width: 300px;
height: 40px;
margin-bottom: 18px;
padding-left: 17px;
border: 1px solid #cecece;
border-radius: 5px;}
.login-type {
border-top: 1px solid #999;
padding: 15px 38px 0;
}
.login-type ul {
margin-top: 20px;
}
.login-type ul li {
float: left;
margin-right: 50px;
text-align: center;
}
.registe {
text-align: center;
margin-top: 16px;
}
.reg {
padding: 6px 22px;
font-size: 12px;
color: #fff;
background-color: rgba(0, 0, 0, .2);
border-radius: 5px;
}
</style>
</head>
<body>
<div class="login-logo"><img src="./img/login_logo.png" alt=""></div>
<div class="wrap">
<div class="box">
<form action="">
<input type="text" placeholder="请输入您的手机号" id="account"/>
<button type="button" id="add" onclick="Random()">获取验证码</button>
<input type="text" placeholder="请输入验证码" id="num" />
<input type="submit" value="立即注册" onclick="getInformation()"/>
<script>
function getInformation(){
var account=document.getElementById("account").value;
var num=document.getElementById("num").value;
if(account==null||account==""){
alert("手机号不能为空");
return false;}
if(account.length!=11){
alert("请输入11位正确手机号");
return false;}
if(num==null){
alert("验证码不能为空");
return false;}
if(num!=random){
alert("验证码错误,请重新输入");
return false;}
else{
alert("注册成功!");
}
}
var add=document.getElementById("add")
console.log(add)
var random=""
function Random(){
random=""
for(var i=0; i<4;i++){
random+=Math.floor(Math.random()*10)
}
alert("验证码"+random)}
// 按钮点击之后,会禁用 disabled 为true
// 同时按钮里面的内容会变化, 注意 button 里面的内容通过 innerHTML修改
// 里面秒数是有变化的,因此需要用到定时器
// 定义一个变量,在定时器里面,不断递减
// 如果变量为0 说明到了时间,我们需要停止定时器,并且复原按钮初始状态
var btn = document.querySelector('button');
var time = 60; // 定义剩下的秒数
btn.addEventListener('click', function () {
btn.disabled = true;
var timer = setInterval(function () {
if (time == 0) {
// 清除定时器和复原按钮
clearInterval(timer);
btn.disabled = false;
btn.innerHTML = '获取验证码';
time = 60;
} else {
btn.innerHTML = time + '秒后重新获取';
time--;
}
}, 1000)
})
</script>
</form>
<p>注册视为同意<a href="#">《悠游用户使用协议》</a></p>
</div>
<div class="login-type">
<p>用合作网站账户直接登录</p>
<ul class="clearfix">
<li>
<a href><img src="./img/weibo.png" alt=""></a>
<p>新浪微博</p>
</li>
<li>
<a href><img src="./img/QQ.png" alt=""></a>
<p>QQ</p>
</li>
<li>
<a href><img src="./img/weixin.png" alt=""></a>
<p>微信</p>
</li>
</ul>
</div>
</div>
<div class="registe">
<span class="reg">已有帐号?<a href="login.html" style="color: #5696ff;">马上登录?</a></span>
</div>
</body>
</html>
外部样式表(外链式)common.css
* {
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
}
.clearfix:after {
content: "";
display: block;
height: 0;
clear: both;
}
body {
background-color: #f3f3f3;
}
.fl {
float: left;
}
.fr {
float: right;
}
.nav {
margin: 0 auto;
width: 1200px;
font-size: 18px;
}
.logo {
margin-right: 159px;
line-height: 72px;
}
.logo img {
vertical-align: middle;
}
.list>li {
float: left;
width: 80px;
height: 72px;
margin-right: 24px;
line-height: 72px;
text-align: center;
}
.current {
background-color: #5696ff;
color: white;
}
.login-reg>li {
float: left;
line-height: 72px;
}
.login-middle {
color: #999;
}
.footer {
color: #fff;
height: 130px;
background-color: #6297f7;
overflow: hidden;
}
.footer div{
width: 660px;
margin: 34px auto;
text-align: left;
line-height: 34px;
}
.end {
margin-bottom: 66px;
}
.wrap {
width: 1200px;
margin: 0 auto;
}
img {
vertical-align: middle;
}
a {
color: #6297f7;;
}
.search-row {
background-color: #666666;
line-height: 57px;
}
.search-row img {
vertical-align: middle;
margin: 0 40px;
}
.search-row span {
border-left: 1px solid #fff;
}
.search-row ul li {
float: left;
}