原生js模拟手机端注册页面,实现验证码倒计时功能

css与js相结合,前端使用原生的JavaScript

只在前端获取验证码的话可以使用随机数获取到,进行比对。

如果需要模拟发送短信的验证码,需要在后端使用腾讯云或阿里云的短信服务,具体操作可以查询哔哩哔哩!!!

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<meta http-equiv="Pragma" content="no-cache">
	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
	<meta name="format-detection" content="telephone=yes" />
	<meta name="apple-mobile-web-app-capable" content="yes" />
	<meta name="apple-mobile-web-app-status-bar-style" content="black" />
	<title>绑定信息</title>
	<!-- Bootstrap core CSS-->
	<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
	<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
	<style type="text/css">
		body {
			margin: 0;
			padding: 0;
		}

		.modal_content {
			padding: 30px;
			display: flex;
			justify-content: center;
			flex-direction: column;
		}

		.modal_content>div {
			margin-bottom: 20px;
		}

		.modal_content>h5:first-child {
			margin: 30px 0px;
		}

		#dialog label {
			color: #666;
		}

		#phone1 {
			display: block;
			width: 100%;
			height: 70px;
			background: none;
			padding-top: 30px;
			border: 0;
			outline: none;
			text-align: center;
			margin-top: -30px;
			font-size: 16px;
			border-bottom: 1px solid rgba(0, 0, 0, .2);
			border-radius: 0;
		}

		.code1 {
			display: flex;
			flex-direction: row;
			justify-content: space-between;
			width: 100%;
			height: 70px;
			background: none;
			padding-top: 30px;
			margin-top: -30px;
			font-size: 16px;
			border-bottom: 1px solid rgba(0, 0, 0, .2);
			border-radius: 0;
		}

		#code1 {
			width: calc(100% - 90px);
			height: 55px;
			background: none;
			padding-top: 20px;
			border: 0;
			outline: none;
			text-align: center;
			margin-top: -20px;
			font-size: 16px;
		}

		#btnSendCode1 {
			width: 90px;
			height: 30px;
			padding: 0 5px;
			margin: 0;
			font-size: 14px;
			text-align: center;
			background: transparent;
			border-radius: 30px;
			color: #a07941;
			border-color: #a07941;

		}

		::-webkit-input-placeholder {
			/* WebKit browsers */
			font-size: 14px;
			color: rgba(0, 0, 0, .4);
		}

		:-moz-placeholder {
			/* Mozilla Firefox 4 to 18 */
			font-size: 14px;
			color: rgba(0, 0, 0, .4);
		}

		::-moz-placeholder {
			/* Mozilla Firefox 19+ */
			font-size: 14px;
			color: rgba(0, 0, 0, .4);
		}

		:-ms-input-placeholder {
			/* Internet Explorer 10+ */
			font-size: 14px;
			color: rgba(0, 0, 0, .4);
		}

		.next {
			text-align: center;
			margin: 20px 0;
		}

		.next button {
			width: 100%;
			height: 45px;
			padding: 0;
			margin: 0;
			background: #007BFF;
			color: #fff;
			border: 0;
			outline: none;
			border-radius: 3px;
		}
	</style>
</head>

<body>

	<div class="modal_content">
		<h5>绑定用户信息!</h5>
		<div>
			<label for="phone1">注册手机号:</label><br />
			<input id="phone1" type="text" autocomplete="off" placeholder="请输入已绑定的手机号" />
		</div>
		<div>
			<label for="code1">验证码:</label>
			<div class="code1">
				<input id="code1" type="text" autocomplete="off" placeholder="短信验证码" />
				<input id="btnSendCode1" type="button" class="btn btn-default" value="获取验证码" onClick="sendMessage1()" />
			</div>
		</div>
		<div class="next">
			<button onclick="binding()">确定</button>
		</div>
	</div>
	<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
	<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

	<script>
		var phoneReg = /(^1[3|4|5|7|8]\d{9}$)|(^09\d{8}$)/;//手机号正则 
		var count = 60; //间隔函数,1秒执行
		var InterValObj1; //timer变量,控制时间
		var curCount1;//当前剩余秒数
		/*第一*/
		function sendMessage1() {
			curCount1 = count;
			var phone = $.trim($('#phone1').val());
			console.log(phone, 'phone')
			if (!phoneReg.test(phone)) {
				alert(" 请输入有效的手机号码");
				return false;
			}
			//设置button效果,开始计时
			$("#btnSendCode1").attr("disabled", "true");
			$("#btnSendCode1").val(+ curCount1 + "秒再获取");
			InterValObj1 = window.setInterval(SetRemainTime1, 1000); //启动计时器,1秒执行一次
			//向后台发送处理数据

		}
		function SetRemainTime1() {
			if (curCount1 == 0) {
				window.clearInterval(InterValObj1);//停止计时器
				$("#btnSendCode1").removeAttr("disabled");//启用按钮
				$("#btnSendCode1").val("重新发送");
			}
			else {
				curCount1--;
				$("#btnSendCode1").val(+ curCount1 + "秒再获取");
			}
		}

		/*提交*/
		function binding() {
			alert(1)
		}
	</script>
</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值