我正在设置计时器,但我以错误的方式进行.所以请给我更好的方法来做到这一点
I am setting a timer, but i am doing it in wrong way. So please give me better way to do this
我正在设置计时器,但我以错误的方式进行了设置。所以请任何人给我更好的方法来做到这一点。
这是我写的代码....我知道我以错误的方式做了它,但它有效。我将计时器设置为40秒。
<!DOCTYPE html>
<html><head><title>Online</title>
<script language="javascript">
function timedText()
{
var x=document.getElementById('txt');
var t40=setTimeout(function(){x.value="40 sec "},1000);
var t39=setTimeout(function(){x.value="39 sec "},2000);
var t38=setTimeout(function(){x.value="38 sec "},3000);
var t37=setTimeout(function(){x.value="37 sec "},4000);
var t36=setTimeout(function(){x.value="36 sec "},5000);
var t35=setTimeout(function(){x.value="35 sec "},6000);
var t34=setTimeout(function(){x.value="34 sec "},7000);
var t33=setTimeout(function(){x.value="33 sec "},8000);
var t32=setTimeout(function(){x.value="32 sec "},9000);
var t31=setTimeout(function(){x.value="31 sec "},10000);
var t30=setTimeout(function(){x.value="30 sec "},11000);
var t29=setTimeout(function(){x.value="29 sec "},12000);
var t28=setTimeout(function(){x.value="28 sec "},13000);
var t27=setTimeout(function(){x.value="27 sec "},14000);
var t26=setTimeout(function(){x.value="26 sec "},15000);
var t25=setTimeout(function(){x.value="25 sec "},16000);
var t24=setTimeout(function(){x.value="24 sec "},17000);
var t23=setTimeout(function(){x.value="23 sec "},18000);
var t22=setTimeout(function(){x.value="22 sec "},19000);
var t21=setTimeout(function(){x.value="21 sec "},20000);
var t20=setTimeout(function(){x.value="20 sec "},21000);
var t19=setTimeout(function(){x.value="19 sec "},22000);
var t18=setTimeout(function(){x.value="18 sec "},23000);
var t17=setTimeout(function(){x.value="17 sec "},24000);
var t16=setTimeout(function(){x.value="16 sec "},25000);
var t15=setTimeout(function(){x.value="15 sec "},26000);
var t14=setTimeout(function(){x.value="14 sec "},27000);
var t13=setTimeout(function(){x.value="13 sec "},28000);
var t12=setTimeout(function(){x.value="12 sec "},29000);
var t11=setTimeout(function(){x.value="11 sec "},30000);
var t10=setTimeout(function(){x.value="10 sec "},31000);
var t9=setTimeout(function(){x.value="9 sec "},32000);
var t8=setTimeout(function(){x.value="8 sec "},33000);
var t7=setTimeout(function(){x.value="7 sec "},34000);
var t6=setTimeout(function(){x.value="6 sec "},35000);
var t5=setTimeout(function(){x.value="5 sec "},36000);
var t4=setTimeout(function(){x.value="4 sec "},37000);
var t3=setTimeout(function(){x.value="3 sec "},38000);
var t2=setTimeout(function(){x.value="2 sec "},39000);
var t01=setTimeout(function(){x.value="1 sec "},40000);
var t0=setTimeout(function(){x.value="0 sec "},41000);
var wc=setTimeout(function()
{
document.quest.submit();
window.open('best2.php?username=$username');
window.close('best1.php?username=$username');
},42000);
}
</script>
</head>
<body onload="timedText()">
<br><br>
<form name="quest" method="POST" action="">
<p align='right'><b>Time left to answer this Question : </b>
<input type="text" id="txt" /></p>
<p><b>Question 1 : </b> Vanessa and Brett had been arguing about their perceived
proclivity to spend for hours together. What word describes the couple's predicament? <br></p>
<p><input type="radio" value="Wrong" name="answers" id="r1">Demarche </p>
<p><input type="radio" value="Correct" name="answers" id="r2">Impasse </p>
<p><input type="radio" value="Wrong" name="answers" id="r3">Mélange </p>
<p><input type="radio" value="Wrong" name="answers" id="r4">tête-à-tête </p>
<input type="submit" name="NEXT" value="Next" >
<br/>
<br/>
</form>
</body>
</html>
这将是设置它的更好方法:
var interval = setInterval(function() { /*doSomething*/ }, 1000)
setTimeout(function() { clearInterval(interval); }, 40000);
使用 setInterval 而不是 setTimeout,然后你可以计数:
var timer = 0;
var t = setInterval(function() {
timer++;
if (timer == 1) {
x.value = "1 sec";
} else if (timer == 2) {
x.value = "2 sec";
} //...and so on
}, 1000)
使用计数从 40 到 0 的值。
var timeLeft = 41;
function timedText() {
var x = document.getElementById("txt");
window.setInterval(function() {
timeLeft--;
x.value = timeLeft + " sec";
// Submit the form if the counter reaches zero
if (timeLeft == 0) {
document.quest.submit();
window.open('best2.php?username=$username');
window.close('best1.php?username=$username');
}
}, 1000);
}
看起来你试图制作一个倒数计时器。 这是一种方法:
var startTime = 40;
var txt = document.getElementById("txt");
var timer = setInterval(function(){
if(startTime == 0){
txt.value = "Times up";
clearInterval(timer);
return;
}
txt.value = startTime-- + " sec";
}, 1000);
JS小提琴:http://jsfiddle.net/z3TBM/
您可以使用
for
循环来执行此操作:
for(var i=0;i<40;i++){
var t+""+i=setTimeout(function(){x.value=i+" sec "},(i+1)*1000);
}
相关文章:
- 在JavaScript中拆分日期字符串的更好方法是什么
- 设置嵌套对象属性的更好方法
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 将数组从javascript格式化为php的更好方法,反之亦然
- jquery:将动画绑定到滚动条位置的更好方法
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 编写if-else语句的更好方法
- 传递promise回调方法的更好方法
- 在Knockoutjs中设置计算对象的observableArray的更好方法
- 从网页获取数据的更好方法,而不是使用DOM和HTML元素
- Backbone js代码气味-嵌入子视图的更好方法
- 从数组中删除项的更好方法
- 对多维数组进行分组的更好方法
- 在node.js和express中基于路径运行不同数据库查询的更好方法
- 动态更改测试中代码覆盖率的require语句的更好方法
- 设计具有数据持久性的web应用程序的更好方法
- 选择表行的更好方法
- 在nodejs服务器上提供文件的更好方法,而不是if/else
- Javascript;Ajax——填充对象的更好方法