Проверка OTP таймер обратного отсчета 2 минуты - PullRequest
0 голосов
/ 30 мая 2018

Мне нужно остановить время с 02.00 до 0.00.Но он остановился в -1.59 или начал снижаться вперед.В угловой машинописи я написал код выше.что я сделал не так:

<html>
  <body>
    <input type="text" name="otp" placeholer="Enter your otp"/>
    <div>Time left = <span id="timer"></span></div>
  </body>
</html>

IN Угловая машинопись:

callMyCount(){    
  document.getElementById('timer').innerHTML ="02" + ":" + "00";
  var myTimer=setInterval(startTimer,1000);

  function startTimer() {
    var presentTime = document.getElementById('timer').innerHTML;
    var timeArray = presentTime.split(/[:]+/);
    var m = parseInt(timeArray[0]);
    var s = checkSecond((parseInt(timeArray[1]) - 1));
    if(s==59){m=m-1}
    if(m<0 && s==59){alert("Timeout for otp");
                     clearTimeout(myTimer);}
    document.('timer').innerHTML =  m + ":" + s;
  }

  function checkSecond(sec) {
    if (sec < 10 && sec >= 0) {sec = "0" + sec}; 
    if (sec < 0) {sec = "59"};
    return sec;
  }
}

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете сделать намного проще с внутренним setTimeout, который выполняет рекурсивный вызов и считает только секунды:

let timerOn = true;

function timer(remaining) {
  var m = Math.floor(remaining / 60);
  var s = remaining % 60;
  
  m = m < 10 ? '0' + m : m;
  s = s < 10 ? '0' + s : s;
  document.getElementById('timer').innerHTML = m + ':' + s;
  remaining -= 1;
  
  if(remaining >= 0 && timerOn) {
    setTimeout(function() {
        timer(remaining);
    }, 1000);
    return;
  }

  if(!timerOn) {
    // Do validate stuff here
    return;
  }
  
  // Do timeout stuff here
  alert('Timeout for otp');
}

timer(120);
<input type="text" name="otp" placeholer="Enter your otp"/>
<div>Time left = <span id="timer"></span></div>

Var timerOn предназначен только для программного обратного отсчета.Бесполезно при загрузке другой страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...