Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Javascript程序设置为等待_Javascript_Html_Timer_Settimeout - Fatal编程技术网

如何将Javascript程序设置为等待

如何将Javascript程序设置为等待,javascript,html,timer,settimeout,Javascript,Html,Timer,Settimeout,我的代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Demo</title> <style type="text/css"> #submitbox .button{ padding:

我的代码如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Demo</title>  
 <style type="text/css">
    #submitbox .button{
        padding:3px 6px;
        background:#B4D666;
        border-top:1px solid #B4D666;
        border-right:1px solid #81B840;
        border-bottom:1px solid #81B840;
        border-left:1px solid #B4D666;
        color:#2970A6;
        font-size:11px;
        cursor:pointer;
    }

    #submitbox .disabled-button{
        background: #CCCCCC;
        border-color: #CCCCCC #999999;
        color: #CC6600;
    }    
</style>
</head>
<body>
    <form name="form1" method="post" action="#">

        <input name="counter" id="counter" value="enable" type="text" /> <br/><br/>
        <div id="submitbox">     
            <input id="cmt-submit" type="button" class="button" value="Submit comment" onclick="return timer();" />
        </div>

        <script type="text/javascript">
            <!-- 
            // 
            var cmtSubmit = document.getElementById('cmt-submit');
            var count = document.getElementById('counter');
            var milisec = 0;
            var seconds = 10;
            var timercmt = 0;
            var timertxt = 0;
            function display() {
                if (milisec <= 0) {
                    milisec = 9;
                    seconds -= 1;
                }
                if (seconds <= -1) {
                    milisec = 0;
                    seconds += 1;
                }
                if (seconds == 0) {
                    cmtSubmit.value = "Submit comment";
                    cmtSubmit.disabled=false;
                    cmtSubmit.className = "button";                  
                    clearTimeout(timercmt);                           
                }
                else {
                    milisec -= 1;
                    cmtSubmit.value = seconds + " sec wait before next comment";
                    cmtSubmit.disabled = true;
                    cmtSubmit.className = "disabled-button";                     
                    timercmt = setTimeout("display()", 100);
                }
            }

            function timer() {      
                if (count.value == "enable") { 
                    count.value = "disable";
                    timertxt = setTimeout("setCounter()", 10000);
                    return true;                              
                } 
                else      
                {        
                    clearTimeout(timertxt);   
                    display();    
                    count.value == "enable"           
                    return false; 
                }
            }  

            function setCounter() {
                count.value == "enable"    
            }  
            --> 
        </script>
    </form>
</body>
</html>

演示
#submitbox.按钮{
填充:3px6px;
背景:#B4D666;
边框顶部:1px实心#B4D666;
右边框:1px实心#81B840;
边框底部:1px实心#81B840;
左边框:1px实心#B4D666;
颜色:#2970A6;
字体大小:11px;
光标:指针;
}
#submitbox.禁用按钮{
背景:#中交;;
边框颜色:#中交#999999;
颜色:#CC6600;
}    


它仅适用于第一次运行时hix hix


有人知道我哪里出错了吗?

找到了:您忘了重新初始化变量。更新代码如下:

    <script type="text/javascript">
        <!-- 
        // 
        var cmtSubmit = document.getElementById('cmt-submit');
        var count = document.getElementById('counter');
        var milisec = 0;
        var seconds = 10;
        var timercmt = 0;
        var timertxt = 0;
        function display() {
            if (milisec <= 0) {
                milisec = 9;
                seconds -= 1;
            }
            if (seconds <= -1) {
                milisec = 0;
                seconds += 1;
            }
            if (seconds == 0) {
                cmtSubmit.value = "Submit comment";
                cmtSubmit.disabled = false;
                cmtSubmit.className = "button";                  
                clearTimeout(timercmt);   
                //--- You have to re--initialize variables here
                 milisec = 0;
                 seconds = 10;
                 timercmt = 0;
                 timertxt = 0;                        
            }
            else {
                milisec -= 1;
                cmtSubmit.value = seconds + " sec wait before next comment";
                cmtSubmit.disabled = true;
                cmtSubmit.className = "disabled-button";                     
                timercmt = setTimeout("display()", 100);
            }
        }

        function timer() {      
            if (count.value == "enable") { 
                count.value = "disable";
                timertxt = setTimeout("setCounter()", 10000);
                return true;                              
            } 
            else      
            {        
                clearTimeout(timertxt);   
                display();    
                count.value == "enable"           
                return false; 
            }
        }  

        function setCounter() {
            count.value == "enable"    
        }  
        --> 
    </script>


在您的问题中添加更多标签,如“javascript”、“html”。然后您将很快得到一个好的答案。
setTimeout
既可以用于函数引用,也可以用于计算代码。在你的情况下,通过参考你会更好。简而言之,replace
setTimeout(“display()”,100)设置超时(显示,100)。我的问题是,用户何时发送评论将有10秒的等待时间,并且该时间将在用户发送评论后计算。