问答详情
源自:3-4 编程练习

我这奇葩代码,为啥倒数到2就停了

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
    window.onload=function(){
        var send=document.getElementById('send'),
            times=5,
            timer=null;
        send.onclick=function(){
          // 计时开始   
          function countDown(){  
          send.value = times + "秒后重试";
          send.disabled=true;
          times--;
          if(times <= 0){
              clearInterval(timer);
              send.disabled=false;
              times=5;
              send.value = "发送验证码";
          }
          }  
          timer=setInterval(countDown,1000);
        }
    }
    </script>
</head>
<body>
    <input type="button" id="send" value="发送验证码">
</body>
</html>

提问者:答答安 2016-01-08 16:58

个回答

  • renyi3916741
    2016-10-06 18:20:44

    if(times <= 0){

                 clearInterval(timer);

                 send.disabled=false;

                 times=5;

                 send.value = "发送验证码";

             }else{

              send.value = times + "秒后重试";

             send.disabled=true;

             times--;

             }

    把之前执行的语句放在else中,就行

  • qq_安伊偌拉_0
    2016-01-08 17:10:18

    times==1时,按钮的值变成了"1秒后重试",只不过一闪而过,马上就执行了下面的语句,times--,变为0,执行if里面的语句,按钮的值瞬间变成了"发送验证码"。