javascript - 如何创建一个基本的 JavaScript 计时器?
问题描述
我要做的是用户在文本框中输入一个数字,然后浏览器会弹出一个警报,它会倒计时......秒。下面是我的代码,但似乎没有任何效果。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
function timer(){
if(document.getElementById("time").value=="")||(isNaN(document.getElementById("time").value)==true)
alert("Please input a number");
else
alert("Start counting down ",(parseInt(document.getElementById("time").value))/1000," seconds");
setTimeout("alert('Times out');",time);
}
</script>
<input type="text" id="time"/>
<button onClick="timer();">Submit</button>
</body>
</html>
解决方案
您缺少time
变量。是undefined
。
另外,不要在里面评估函数setTimeout
:
var EL_time = document.getElementById("time");
var EL_startTime = document.getElementById("startTime");
function end () {
alert("Time out!");
}
function start() {
var time = parseInt(EL_time.value); // the missing `time`
// Early return
if (!Number.isInteger(time)) return alert("Please input a number");
// Everything OK
alert(`Start counting down ${time / 1000} seconds`);
setTimeout(end, time);
}
EL_startTime.addEventListener("click", start);
Milliseconds: <input id="time" type="text">
<button id="startTime">Start</button>
推荐阅读
- json - 如何使用 mongo-go-driver 有效地将 bson 转换为 json?
- c# - Asp.Net MVC 从 Dropdownlist 获取值到 PartialView
- azure - 如何安全地存储连接字符串客户端 ID 等?
- mongodb - MongoDb 和 POSTMAN:文档未添加到集合中
- css - 在 Vue 应用程序的构建阶段定义 CSS 包
- c# - 如何使用给定端口查找未知 IP
- c++ - 如何在arduino ide中修复“未定义的引用:”,尝试使用googletest
- jquery - 尝试使用 jQuery 和 Ajax 填充时,表格单元格返回“未定义”
- highcharts - 以 1 分钟间隔生成随机数据:Highcharts
- java - 如何设置类级别 jpa 检查约束的名称