实现效果:
案例:发送验证码
点击按钮后,该按钮在设定时间内不能再次点击,防止重复发送短信
案例分析:
1.按钮点击之后,会禁用disabled为true
2.同时按钮里面的内容会变化,注意button里面的内容通过innerHTML修改
3.里面秒数是有变化的,因此需要用到定时器
4.定义一个变量,在定时器里面,不断递减
5.如果变量为0说明到了时间,我们需要停止定时器,并且复原按钮初始状态。
示例代码:
<body>
手机号码: <input type="number"> <button>发送</button>
</body>
<script>
var btn = document.querySelector('button');
btn.addEventListener('click',function() {
var times = 3; //定义剩下的秒数
btn.disabled = true;
abc();//很重要,我们先调用一次这个函数,防止刷新页面时点击按钮会延迟一秒
timer = setInterval(abc,1000);
function abc() {
btn.innerHTML = '还剩'+times+'秒可再次发送';
if(times>0)
{
times--;
}
else{
clearInterval(timer); //清除定时器和复原按钮
btn.disabled = false;
btn.innerHTML = '发送';
times = 3;
}
}
})
</script>