javascript 不读取 html 中的值
Posted
技术标签:
【中文标题】javascript 不读取 html 中的值【英文标题】:javascript dosen't read the value in html 【发布时间】:2021-02-06 20:18:18 【问题描述】:所以我想制作一个程序,从您选择的值开始倒计时,但问题是当我尝试将值带到 javascript 时它不起作用但是当我在 html 中输入值时它起作用
这是我的html代码
<body>
<div id="count">
<input id="time" type="number" min="0">
<button id="button">Press here to begin the countdown</button>
</div>
<script src="lol.js"></script>
这是我的 javascript 代码
var count = document.getElementById("count"),
seconds = document.getElementById("time").value ,
btn = document.getElementById("button"),
secondPass;
countDown = setInterval(function()
secondPass()
, 1000);
btn.onclick =
function secondPass()
var minutes = Math.floor(seconds / 60),
remseconds = seconds % 60;
count.innerHTML = minutes + ":" + remseconds;
if (remseconds < 10)
remseconds = "0" + remseconds;
if (seconds> 0 )
seconds = seconds - 1;
else
clearInterval(countDown)
count.innerHTML = "done !"
【问题讨论】:
请发布您的输入和所需的输出 仅供参考:setTimeout 不准确,这将不是一个很好的倒数计时器,因为它是错误的 【参考方案1】:您的代码中的问题是您试图在输入之前获取value
。
如果我理解正确,你想要这个:
var count = document.getElementById("count"),
btn = document.getElementById("button"),
secondPass;
btn.addEventListener("click", secondPass);
function secondPass()
var seconds = document.getElementById("time").value
var countDown = setInterval(function ()
var minutes = Math.floor(seconds / 60),
remseconds = seconds % 60;
count.innerHTML = minutes + ":" + remseconds;
if (remseconds < 10)
remseconds = "0" + remseconds;
if (seconds > 0)
seconds = seconds - 1;
else
clearInterval(countDown)
count.innerHTML = "done !"
, 1000);
<div id="count">
<input id="time" type="number" min="0">
<button id="button">Press here to begin the countdown</button>
</div>
【讨论】:
这正是我想要的!非常感谢我的兄弟 很高兴我能帮上忙 :) 您可以将此答案标记为已接受的答案。【参考方案2】:主要错误 - 声明 seconds
变量时的时间 - 时间输入为空。
我修复了您的示例,因此您可以找出问题所在
var count = document.getElementById("count"),
seconds,
btn = document.getElementById("button"),
countDown
btn.onclick = function()
seconds = document.getElementById("time").value;
countDown = setInterval(function()
secondPass()
, 1000);
function secondPass()
console.log('S', seconds)
var minutes = Math.floor(seconds / 60),
remseconds = seconds % 60;
count.innerHTML = minutes + ":" + remseconds;
if (remseconds < 10)
remseconds = "0" + remseconds;
if (seconds> 0 )
seconds = seconds - 1;
else
clearInterval(countDown)
count.innerHTML = "done !"
【讨论】:
以上是关于javascript 不读取 html 中的值的主要内容,如果未能解决你的问题,请参考以下文章