重置按钮没有重置,但它可以作为停止按钮,任何人都可以帮助我,这个代码有什么问题。
<!DOCTYPE html>
<html>
<head>
<title>Timer</title>
<script>
var sec = 0;
var min = 0;
var hour = 0;
var theResult = "";
function WatchOperations(key) {
sec++;
if (sec == 60) {
sec = 0;
min = min + 1; }
else {
min = min; }
if (min == 60) {
min = 0;
hour += 1;
}
if (sec<=9) {
sec = "0" + sec;
}
document.getElementById("stopwatch").value = ((hour<=9) ? "0"+hour : hour) + " : " + ((min<=9) ? "0" + min : min) + " : " + sec;
if (key == "Start") {
document.getElementById("startButton").value = "Stop ";
}
if (key == "Stop ") {
document.getElementById("startButton").value = "Start";
sec = sec-1; sec--;
}
if (document.getElementById("startButton").value == "Start") {
return true;
}
SD=window.setTimeout("WatchOperations();", 1000);
theResult = document.getElementById("stopwatch").value;
}
function resetIt() {
sec = 0;
min = 0;
hour = 0;
if (document.getElementById("startButton").value == "Stop ") {
document.getElementById("startButton").value = "Start";
window.clearTimeout(SD);
}
}
</script>
</head>
<body>
<table>
<tr><td align="right"><input type="text" size="12" id="stopwatch" value="00 : 00 : 00" style="text-align:center" />
</td>
</tr>
<tr><td><input type="button" id="startButton" value="Start" onclick="WatchOperations(this.value);"/></td>
<td><input type="button" id="resetButton" value="Reset" onclick="resetIt()"></td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:1)
添加此行document.getElementById(&#34;秒表&#34;)。value =&#34; 00:00:00&#34 ;;在这个方法resetIt 重置秒表
function resetIt() {
sec = 0;
min = 0;
hour = 0;
if (document.getElementById("startButton").value == "Stop ") {
document.getElementById("startButton").value = "Start";
document.getElementById("stopwatch").value = "00 : 00 : 00";
window.clearTimeout(SD);
}
}
如果您不想停止观看,则需要发表评论&#34; window.clearTimeout(SD);&#34;这个方法中的这一行
答案 1 :(得分:1)
首先,您需要在全局范围内声明clearTimeout()
ID SD
。正如您在多个功能中使用它:
第二,当您点击重置时,您必须将stopwatch
设置为默认值"00 : 00 : 00"
。
function resetIt() {
sec = 0;
min = 0;
hour = 0;
if (document.getElementById("startButton").value == "Stop ") {
document.getElementById("startButton").value = "Start";
window.clearTimeout(SD);
document.getElementById("stopwatch").value = "00 : 00 : 00"; // Changed
}
}
答案 2 :(得分:1)
我想在if条件块的外部重置秒表文本框值,这样即使单击“停止”按钮也能确保重置按钮正常工作。
function resetIt() {
sec = 0;
min = 0;
hour = 0;
if (document.getElementById("startButton").value == "Stop ") {
document.getElementById("startButton").value = "Start";
window.clearTimeout(SD);
}
document.getElementById("stopwatch").value = "00 : 00 : 00";
}
此外,当按钮停止时,我看到你使用 sec - ; 。我认为这不是必需的。
答案 3 :(得分:0)
从您使用过的所有代码中删除SD,如果没有,那么程序也可以完美运行。