前提・実現したいこと
jsで任意の時間のカウントダウンタイマーを作っています。
HTMLのナンバーインプットで計りたい時間を入力してスタートボタンを押すとその時間でカウントダウンが開始するようにしたいです。
どのように書き直せば入力した値を取得できるでしょうか。
発生している問題・エラーメッセージ
入力した時間を取得できていない模様。
該当のソースコード
html
1 <!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <link rel="stylesheet" href="css/style.css"> 7 <script src="js/main.js"></script> 8 9 </head> 10 11 <body> 12 <div id="timer"> 13 <h1>Timer</h1> 14 <p> 15 <span id="min">0</span> 分 16 <span id="sec">0</span> 秒 17 </p> 18 <p> 19 <input type="button" id="start" value="START"> 20 <input type="button" id="stop" value="STOP" disabled> 21 <input type="button" id="reset" value="RESET"> 22 <input type="number" id="time"> 23 </p> 24 </div> 25 26 </body> 27</html> 28
javaScript
1 2window.onload = function(){ 3 var counter; 4 5 var start = document.getElementById("start"); 6 var stop = document.getElementById("stop"); 7 var reset = document.getElementById("reset"); 8 var min = document.getElementById("min"); 9 var sec = document.getElementById("sec"); 10 var time = document.getElementById("time"); 11 12 13 14 start.onclick = function(){ 15 time = document.getElementById("time"); 16 counter = setInterval(count,1000); 17 toggle(); 18 19 20 } 21 stop.onclick = function(){ 22 clearInterval(counter); 23 toggle(); 24 } 25 reset.onclick = function(){ 26 time = 0; 27 sec.innerHTML = time % 60; 28 min.innerHTML = Math.floor(time / 60); 29 } 30 31 32 function toggle(){ 33 if( start.disabled){ 34 start.disabled = false; 35 stop.disabled = true; 36 } else { 37 start.disabled = true; 38 stop.disabled = false; 39 } 40 } 41 42 function count() { 43 44 if( time === 0) { 45 sec.innerHTML = 0; 46 min.innerHTML = 0; 47 toggle(); 48 alert("3分経過しました。"); 49 clearInterval(counter); 50 } else { 51 time -= 1; 52 sec.innerHTML = time % 60; 53 min.innerHTML = Math.floor(time / 60); 54 } 55 } 56} 57
試したこと
time = 180 のように直接時間を入力した場合、正常に機能します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー