如何将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
既可以用于函数引用,也可以用于计算代码。在你的情况下,通过参考你会更好。简而言之,replacesetTimeout(“display()”,100)代码>设置超时(显示,100)代码>。我的问题是,用户何时发送评论将有10秒的等待时间,并且该时间将在用户发送评论后计算。