JS实现短信验证码倒计时功能:按钮禁用与状态切换

作者:代码拾荒时间:2026-10-30 15:49:34浏览:585

本文介绍如何使用JavaScript实现短信验证码发送后的倒计时功能。核心逻辑包括点击按钮后启动定时器,动态更新按钮文字为剩余秒数,并禁用按钮防止重复点击。关键步骤强调在每次倒计时开始前清除旧定时器,确保逻辑正常。倒计时结束后恢复按钮初始状态,支持重新发送。

功能描述

功能描述

当用户点击“免费获取验证码”按钮时,系统启动倒计时流程。在倒计时的60秒期间,按钮显示剩余的秒数,并且处于不可点击状态。倒计时结束后,按钮文字恢复为“点击重新发送”,允许用户再次操作。

逻辑分析

分析

实现该功能必须依赖定时器机制。当用户点击按钮后,通过定时器进行时间判断,设定倒计时为60秒,直至归零结束。

代码实现与关键点

代码实现:

重点说明:在启动下一次倒计时之前,务必先清除之前的定时器。这一步骤是为了确保每次启动倒计时时状态正常,避免定时器叠加导致的逻辑错误。


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{margin: 0;padding: 0;}
.send{
width:250px;
margin:0 auto;
}
.send input{
display: block;
width:200px;
font:400 16px/30px "微软雅黑";
outline: none;
border: none;
}
.send button{
height:30px;
border: none;
outline: none;
font:400 16px/30px "微软雅黑";
text-align: center;
}
</style>
<script type="text/javascript">
window.onload=function(){
var button=document.getElementsByTagName("button")[0];
button.innerText="免费获取验证码";
var timer=null;
button.onclick=function(){
clearInterval(timer);//这句话至关重要
var time=6;
var that=this;//习惯
timer=setInterval(function(){
console.log(time);
if(time<=0){
that.innerText="";
that.innerText="点击重新发送";
that.disabled=false;
}else {
that.disabled=true;
that.innerText="";
that.innerText="剩余时间"+(time)+"秒";
time--;
}
},1000);
}
}
</script>
</head>
<body>
<div id="send">
<input type="text" name="in" id="in" value="" /><button></button>
</div>
</body>
</html>

以上所述是小编给大家介绍的JS短信验证码倒计时功能的实现(没有验证码,只有倒计时),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!

作者最新文章