繁体   English   中英

重置按钮在使用JavaScript的秒表中不起作用

[英]Reset Button is not working in Stop watch using javascript

重置按钮不会重置,但它可以用作停止按钮,任何人都可以帮助我,此代码有什么问题。

<!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>

添加此行document.getElementById(“ stopwatch”)。value =“ 00:00:00”; 在此方法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);
            }
        }

如果您不想停止手表,则需要注释“ window.clearTimeout(SD);”。 此方法中的这一行

首先,您需要声明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
    }
}

小提琴演示

我想说的是,在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--; 当按钮为Stop时 我认为这不是必需的。

从您曾经使用过的所有代码中删除SD,否则该程序也将正常运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM