未点击
点击后
- 使用setInterval函数实现
功能:按照指定的周期(以毫秒计)来调用函数或计算表达式。
语法:setInterval(code,millisec)
参数:code: 在定时时间到时要执行的JavaScript代码串。
millisec: 设定的定时时间,用毫秒数表示。
返回值:定时器的ID值,可用于clearInterval()方法停止指定的定时器。
注:
setInterval()方法会不停地调用函数,直到用clearInterval()终止定时或窗口被关闭。
代码:
<input type="button" id="btn" value="免费获取验证码" onclick = "time(this)"/>
<script type="text/javascript">
const wait=60;
function time(o) {
if (wait == 0) {
o.removeAttribute("disabled"); //倒计时完成之后可以再次点击
o.value="免费获取验证码";
wait = 60;
clearInterval(myTime);
} else {
o.setAttribute("disabled", true); //倒计时过程中不允许再次点击
var myTime = setInterval(function() {
o.value="重新发送(" + wait-- + ")";
}, 1000);
}
}
</script>
- 使用setTimeout函数实现
功能:setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。
语法:setTimeout(code,millisec)
参数:code: 在定时时间到时要执行的JavaScript代码串。
**millisec: **推迟执行的毫秒数。
代码:
<input type="button" id="btn" value="免费获取验证码" onclick = "time(this)"/>
<script type="text/javascript">
const wait=60;
function time(o) {
if (wait == 0) {
o.removeAttribute("disabled");
o.value="免费获取验证码";
wait = 60;
} else {
o.setAttribute("disabled", true); //倒计时过程中不允许再次点击
o.value="重新发送(" + wait + ")";
wait--;
setTimeout(function() {
time(o);
},
1000)
}
}
</script>
网友评论