3 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
只需在 startTimer() 開(kāi)始時(shí)將“秒”分配給 obj.display.value 的當(dāng)前值,并確保為秒輸入一個(gè)“數(shù)字”類(lèi)型和一個(gè)起始值。
完成后也使用 clearInterval(Id) 停止計(jì)時(shí)器。
function startTimer()
{
var obj = document.getElementById("timer");
/* make sure to tell javascript that 'seconds' is Number that
comes from the input box */
var seconds;
seconds = Number(obj.display.value);
/* Don't need this *AND* seconds-- */
// seconds = seconds - 1;
if (seconds <= 0)
{
clearInterval(Id);
seconds = 0;
}
else
{
seconds--;
}
obj.display.value = seconds;
}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>123</title>
<script type="text/javascript">
</script>
</head>
<body>
<form id="timer" action="#">
<p><input type="number" name="display" size="
20" value="30" /></p>
<!-- changed the interval from 100ms to 1000ms -->
<p><input type="button" value="Start"
onclick="Id=setInterval('startTimer()', 1000)" />
</form>
</script>
</body>
</html>

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
你可以使用這樣的東西:
將數(shù)字修改為您想要的任何數(shù)字,如果您想要一個(gè)input控件,那么我假設(shè)您知道該怎么做,如果不讓我知道。
function myFunction() {
var inputVal = document.getElementById('myInput').value;
var seconds = inputVal, $seconds = document.querySelector('#countdown');
(function countdown() {
$seconds.textContent = seconds + ' second' + (seconds == 1 ? '' : 's')
if(seconds --> 0) setTimeout(countdown, 1000)
})();
}
<input type="text" id="myInput" placeholder="Enter number..." >
<button onclick="myFunction()">Start Counter</button>
<span id="countdown"></span>

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
<input type="number" id="inp">
<div id="counter"></div>
<script>
let input = document.getElementById('inp')
let counter = document.getElementById('counter')
let handleInput = e => {
let num = Number(e.target.value)
let _counter = num - 1
let timer = setInterval(_ => {
if(!_counter)
clearInterval(timer)
counter.innerText = _counter
_counter--
}, 1000)
}
input.addEventListener('input', handleInput)
</script>
上述邏輯適用于 1 - 9(個(gè)位數(shù)輸入),如果您想輸入兩位數(shù)或更大的數(shù)字,可以添加去抖動(dòng)
添加回答
舉報(bào)