薄荷peppermint糖
2017-03-19 19:08
for(times=60;times>0;times--){send.value=times+"秒后重新发送";}
window.onload=function(){
var send=document.getElementById('send'),
times=60,
timer=null;
send.onclick=function(){
// 计时开始
this.disabled="disabled";
timer=setInterval(function(){
times--;
send.value=times+"秒后重试";
if(times==0){
send.disabled=false
clearInterval(timer);
send.value="请发送验证码";
times=60
}
},1000)
}
}
setInterval 第二个参数是毫秒, 要设置成1000,不是100.
你这没定时器,电脑运行你这循环代码,几乎是秒完成,你压根看不到变化。当然直接跳到最后
不好意思,修改一下。
倒数第二次循环~~当times=2时;times>0; 输出:2秒后重新发送 ; times--
最后一次循环~~~times=1;times>0; 输出:1秒后重新发送 ; times--
times=0;不满足条件 退出循环,。。。所以最后输出为1.
因为:
倒数第二次循环~~当times=2时;times>0; 输出:2秒后重新发送 ; times--
最后一次循环~~~times=1;times>0; 输出:2秒后重新发送 ; times--
times=0;不满足条件 退出循环,。。。所以最后输出为1.
我觉得应该是因为send.value会直接显示最后的值,不会随着for循环改变value,你可以用一个定时器对send的value值进行改变,我在你的代码下面加了一个consol.log(times+"秒后重新发送");是可以在控制台输出60~1的语句的。
var send=document.getElementsByClassName('send')[0]; var times=60; setInterval(time,100) function time(){ times--; send.value=times+'秒后重新发送'; (times<=0)&&(send.value='重新发送'); }
Tab选项卡切换效果
65469 学习 · 533 问题
相似问题