我编写了一个计时器,能够根据用户选择的数字生成报告。有一个问题我无法解决。如果您通过在其中写入数字并单击按钮来更改输入值,则报告将显示指定的基值,而不是自定义值。js还不好。我请求帮助,我做错了什么?
function startTimer() {
let timeInput = document.getElementById("input-sport").value;
let time = parseInt(timeInput) * 60;
//let timerDisplay = document.querySelector('.countdown');
if (timeInput == 0 || isNaN(timeInput)) {
alert("error");
};
let timer = setInterval(updateTimer, 1000);
function updateTimer() {
let minutes = Math.floor(time / 60);
let seconds = time % 60;
let minTens = Math.floor(minutes / 10);
let minOnes = minutes % 10;
let secTens = Math.floor(seconds / 10);
let secOnes = seconds % 10;
const minTensEl = document.getElementById("min_tens");
const minEl = document.getElementById("min");
const secTensEl = document.getElementById("sec_tens");
const secEl = document.getElementById("sec");
minTensEl.innerHTML = `${minTens}`;
min.innerHTML = `${minOnes}`;
secTensEl.innerHTML = `${secTens}`;
sec.innerHTML = `${secOnes}`;
if (time <= 0) {
clearInterval(timer);
} else {
time--;
};
};
};
document.querySelector('.button').onclick = startTimer();
<form action="" class="timer" onsubmit="submit">
<div class="info">
Занимаюсь спортом <input type="number" name="time" aria-label="Число минут" placeholder="0" id="input-sport" value="1"> минут(ы)
<div class="countdown">
<div class="num" id="min_tens">0</div>
<div class="num" id="min">0</div>
<div class="dots">:</div>
<div class="num" id="sec_tens">0</div>
<div class="num" id="sec">0</div>
</div>
<button class="button">Запустить</button>
</div>
</form>
1 个回答