Javascript数字输入倒计时
我想做一个倒计时网站,一切都很好,但它不需要在文本框中的数字,我已经启用,只有数字可以输入。每次我输入一些数字,它都会显示NaN:NaN Index.htmlJavascript数字输入倒计时,javascript,Javascript,我想做一个倒计时网站,一切都很好,但它不需要在文本框中的数字,我已经启用,只有数字可以输入。每次我输入一些数字,它都会显示NaN:NaN Index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<link href='https://fonts.googleapis.com/css?family=Merriweather:700italic' rel='stylesheet' type='text/css'>
<title>Pizza Timer</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/styles.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="../0../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="js/bootstrap.min.js"></script>
<script src="js/app.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body id="test" background="pizza.jpg">
<h1 class="text-center"><strong>Pizza Timer!</strong></h1>
<p class="text-center"><small>The Best Pizza Timer In The World!</small></p>
<p id="demo"></p>
<div class="timer">
<span id="time">The Timer Will Start When You Click The Button!</span>
</div>
<div class="row">
<div class="container">
<input id="input1" class="form-control" type="number" placeholder="Minutes" />
<input id="input2" class="form-control" type="number" placeholder="Seconds" />
<button id="timerstarter" class="btn btn-success" onclick=buttonTimer()>Start!</button>
</div>
</div>
</body>
</html>
比萨饼计时器
比萨饼定时器强>
世界上最好的比萨饼计时器
当您单击按钮时,计时器将启动!
开始
app.js
var number1 = document.getElementById('input1').value;
var number2 = document.getElementById('input2').value;
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
var countdown = setInterval(function () {
minutes = parseInt(timer / 60, 10)
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
alert("Your Pizza Is Ready!");
clearInterval(countdown);
}
}, 1000);
}
function buttonTimer (number1, number2) {
var Minutes = number1*60+input2,
display = document.querySelector('#time');
startTimer(Minutes, display);
};
var number1=document.getElementById('input1').value;
var number2=document.getElementById('input2')。值;
功能启动计时器(持续时间、显示){
var定时器=持续时间,分钟,秒;
var倒计时=设置间隔(函数(){
分钟=parseInt(计时器/60,10)
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
如果(--定时器<0){
警惕(“你的比萨饼准备好了!”);
清除间隔(倒计时);
}
}, 1000);
}
功能按钮指示器(编号1、编号2){
var分钟数=1*60+输入2,
display=document.querySelector(“#time”);
开始计时器(分钟,显示);
};
您呼叫
onclick=buttonTimer()
不带参数,但此函数采用两个参数
buttonTimer (number1, number2)
所以在你的例子中,它们都是未定义的
下一个:这一行
document.getElementById('input1').value
返回字符串,所以在与parseInt或parseFloat一起使用之前应该对其进行解析
看来你应该移动线路了
var number1 = document.getElementById('input1').value;
var number2 = document.getElementById('input2').value;
像这样操作按钮
function buttonTimer () {
var number1 = parseInt(document.getElementById('input1').value,10);
var number2 = parseInt(document.getElementById('input2').value,10);
var Minutes = number1*60+number2, //possibly this better rename to Seconds
display = document.querySelector('#time');
startTimer(Minutes, display);
};
按如下方式修改您的代码:
var number1 = document.getElementById('input1');
var number2 = document.getElementById('input2');
function buttonTimer () {
var Minutes = number1.value * 60+ number2.value,
display = document.querySelector('#time');
startTimer(Minutes, display);
};
需要将int解析为number1和number2
var Minutes=number1*60+input2
什么是input2
?它不应该是第2号吗?你应该检查你的控制台是否有错误。在Firefox或Chrome中按F12,然后单击console选项卡。您可能会看到一些未定义的
错误。parseInt
使用字符串。甚至在它成为一个数字之前,您就已经在计算它了。fixed input2->number2@ramin,你在做数学运算之前忘记了解析值,我假设我们不会在这里写出精确的答案,我们只需要解决概念问题,人们必须自己解决细节,对吗?不管怎样,谢谢你提醒我我的错误