今天想到了验证码倒计时的效果,于是做了一个出来。
发现定时器里面写函数名的话,如果带了括号,函数会瞬间执行多次。
代码如下:
<form action="">
<input type="text"> <input type="button" id="getyzm" value="获取验证码">
</form>
<script>
function yzmdjs (id,time) {
var getyzm=document.getElementById(id);
var getyzmYuan=getyzm.value;
getyzm.setAttribute("disabled","disabled");
time=time;
getyzm.value=time+"秒后可重新获取验证码";
daojishiT=setTimeout(daojishi(),1000);
function daojishi () {
//console.log(time);
time--;
getyzm.value=time+"秒后可重新获取验证码";
if (time==0) {
getyzm.value=getyzmYuan;
getyzm.removeAttribute("disabled");
}else{
daojishiT=setTimeout(daojishi,1000);
};
}
}
document.getElementById("getyzm").onclick=function (argument) {
//添加发送验证码的操作
yzmdjs(this.id,10);
}
</script>