这是我的代码,请告诉我我在哪里犯了错误,以便我可以从中学习并希望它能够正常运行:)。
这是html:
<input type="text" id="txt" />
<input type="button" value="Start Timer" onclick="startTimer()" />
这是javascript:
var Timer = 120;
var checkTimer = false;
var t;
function countDown(){
doucment.getElementById("txt").value = Timer;
Timer--;
t = setTimeout("countDown();", 1000);
}
function startTimer(){
if(!checkTimer){
checkTimer = true;
countDown();
}
else{
console.log("Error!");
}
}
答案 0 :(得分:0)
在此Fiddle
中查看您的代码让我偶然发现了一些事情,
startTimer()
中的onclick
。doucment
!== document
正如Sterling Archer t = setTimeout(countDown, 1000);
醇>
现在让我们来解决。
<强> HTML 强>
<input type="text" id="txt" />
<!-- Removed the onclick attribute and added an ID for the eventListener -->
<input type="button" value="Start Timer" id="start" />
<强> JS 强>
//Event listener for the button. Same as the onClick, this one, however, does work.
document.getElementById("start").addEventListener("click", startTimer, false);
var Timer = 120;
var checkTimer = false;
var t;
function countDown() {
document.getElementById("txt").value = Timer;
Timer--;
t = setTimeout(countDown, 1000);
}
function startTimer() {
if (!checkTimer) {
checkTimer = true;
countDown();
} else {
console.log("Error!");
}
}
我所做的是:
startTimer()
&#34;无法找到&#34;错误doucment
更改为document
t = setTimeout(countDown, 1000);
希望这有帮助!
答案 1 :(得分:-3)
你有一个错字。您应该document.getElementById("txt")
而不是doucment.getElementById("txt")
。试试这个:
var Timer = 120;
var checkTimer = false;
var t;
function countDown() {
document.getElementById("txt").value = Timer;
Timer--;
t = setTimeout("countDown();", 1000);
}
function startTimer() {
if (!checkTimer) {
checkTimer = true;
countDown();
} else {
console.log("Error!");
}
}
<强>更新强> 如果您希望定时器停止为零,则需要在再次递减计时器之前添加if语句以查看定时器是否大于0。这看起来像这样:
<强> HTML:强>
<input type="text" id="txt" />
<input type="button" value="Start Timer" onclick="startTimer()" />
<强> JS:强>
var Timer = 120;
var checkTimer = false;
var t;
function countDown() {
document.getElementById("txt").value = Timer;
if (Timer > 0){
Timer--;
}
t = setTimeout("countDown();", 1000);
}
function startTimer() {
if (!checkTimer) {
checkTimer = true;
countDown();
} else {
console.log("Error!");
}
}
演示:https://jsfiddle.net/hopkins_matt/moks2oyb/
可以对此代码进行进一步改进,但这是为了说明一旦错误得到修复,您的代码就会起作用。