@atumbochka

Почему не работает таймер?

Есть кнопка, а также таймер, созданный на js. Нужно сделать так, чтобы при нажатии кнопки таймер запускался, но при применении onclick ничего не происходит (появляется 00:00, а отсчёт не идёт).
Также сама функция "тика" таймера происходит при window.onload. То есть если не убирать window.onload и добавить в onclick, то всё будет работать, но таймер просто станет видимым при нажатии кнопки, а отсчёт начнется прямо с загрузки страницы.

Вот необходимый код:
<div class="pdTop">
            <input type="button" id="submitButton" value="ОК">
        </div>
        <div class="container-fluid">
            <div id="errorMessage" class="sr-only" role="error"></div>
            <h1 id="time" class="text-center clock-timer">00:00</h1>
        </div>


let submitButton = document.getElementById("submitButton");
submitButton.onclick = function () {
    userInformation = {
        "name": name.value,
        birth: dayOfBirth.value + " " + monthOfBirth.value + " " + yearOfBirth.value,
        "symptoms": "Симптомы: " + symptoms.value
    };
    
    if (symptoms.value === "Экстримальные") {
        var symptomTime = 100;
    }
    else if (symptoms.value === "Сложные") {
        var symptomTime = 60;
    }
    else if (symptoms.value === "Средние") {
        var symptomTime = 30;
    } else {
        var symptomTime = 15;
    }

    document.getElementById("time").hidden = false;
};
document.getElementById("time").hidden = true;
var intervalHandle;
var secondsRemaining;

function tick() {
    var timeDisplay = document.getElementById("time");
        
    var min = Math.floor(secondsRemaining / 60);
    var sec = secondsRemaining - (min * 60);
        
    if(min < 10) {
        min = "0" + min;
    }
        
    if(sec < 10) {
        sec = "0" + sec;
    }
        
    var message = min + ":" + sec;
    timeDisplay.innerHTML = message;
        
    if(secondsRemaining === 0) {
        document.getElementById("errorMessage").innerHTML = "<strong>Ваша очередь подошла! Приходите!</strong>";
        document.getElementById("errorMessage").setAttribute("class","alert alert-success text-center");
        clearInterval(intervalHandle);
        resetPage();
    }
    secondsRemaining--;
    }

    window.onload = function startCountdown() {
    secondsRemaining = symptomTime * 60;
    intervalHandle = setInterval(tick, 1000);
    document.getElementById("refresh").style.display = "block";
}


На symptoms и т.п не обращайте внимания, с ними всё хорошо. Заранее спасибо!
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы