teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

文法修正

2019/10/28 11:22

投稿

sabiki-taro
sabiki-taro

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
  jsで任意の時間のカウントダウンタイマーを作っています。
3
3
  HTMLのナンバーインプットで計りたい時間を入力してスタートボタンを押すとその時間でカウントダウンが開始するようにしたいです。
4
- どのように書き直せば入力した値を取得できるか教えてください
4
+ どのように書き直せば入力した値を取得できるでしょうか。
5
5
 
6
6
  ### 発生している問題・エラーメッセージ
7
7
  入力した時間を取得できていない模様。
@@ -51,6 +51,7 @@
51
51
  var time = document.getElementById("time");
52
52
 
53
53
 
54
+
54
55
  start.onclick = function(){
55
56
  time = document.getElementById("time");
56
57
  counter = setInterval(count,1000);

2

ソースコード記入

2019/10/28 11:22

投稿

sabiki-taro
sabiki-taro

スコア7

title CHANGED
File without changes
body CHANGED
@@ -9,21 +9,92 @@
9
9
  ### 該当のソースコード
10
10
 
11
11
  ```html
12
+ <!DOCTYPE html>
13
+ <html lang="ja">
14
+ <head>
15
+ <meta charset="utf-8">
16
+ <title></title>
17
+ <link rel="stylesheet" href="css/style.css">
18
+ <script src="js/main.js"></script>
19
+
20
+ </head>
21
+
22
+ <body>
23
+ <div id="timer">
24
+ <h1>Timer</h1>
12
25
  <p>
26
+ <span id="min">0</span> 分
27
+ <span id="sec">0</span> 秒
28
+ </p>
29
+ <p>
13
30
  <input type="button" id="start" value="START">
14
31
  <input type="button" id="stop" value="STOP" disabled>
15
32
  <input type="button" id="reset" value="RESET">
16
33
  <input type="number" id="time">
17
34
  </p>
35
+ </div>
36
+
37
+ </body>
38
+ </html>
39
+
18
40
  ```
19
41
  ```javaScript
42
+
43
+ window.onload = function(){
44
+ var counter;
45
+
46
+ var start = document.getElementById("start");
47
+ var stop = document.getElementById("stop");
48
+ var reset = document.getElementById("reset");
49
+ var min = document.getElementById("min");
50
+ var sec = document.getElementById("sec");
20
51
  var time = document.getElementById("time");
21
52
 
53
+
22
54
  start.onclick = function(){
23
55
  time = document.getElementById("time");
24
56
  counter = setInterval(count,1000);
25
57
  toggle();
26
58
 
59
+
60
+ }
61
+ stop.onclick = function(){
62
+ clearInterval(counter);
63
+ toggle();
64
+ }
65
+ reset.onclick = function(){
66
+ time = 0;
67
+ sec.innerHTML = time % 60;
68
+ min.innerHTML = Math.floor(time / 60);
69
+ }
70
+
71
+
72
+ function toggle(){
73
+ if( start.disabled){
74
+ start.disabled = false;
75
+ stop.disabled = true;
76
+ } else {
77
+ start.disabled = true;
78
+ stop.disabled = false;
79
+ }
80
+ }
81
+
82
+ function count() {
83
+
84
+ if( time === 0) {
85
+ sec.innerHTML = 0;
86
+ min.innerHTML = 0;
87
+ toggle();
88
+ alert("3分経過しました。");
89
+ clearInterval(counter);
90
+ } else {
91
+ time -= 1;
92
+ sec.innerHTML = time % 60;
93
+ min.innerHTML = Math.floor(time / 60);
94
+ }
95
+ }
96
+ }
97
+
27
98
  ```
28
99
 
29
100
  ### 試したこと

1

マークダウン記法使用に変更。

2019/10/28 11:10

投稿

sabiki-taro
sabiki-taro

スコア7

title CHANGED
File without changes
body CHANGED
@@ -8,23 +8,24 @@
8
8
 
9
9
  ### 該当のソースコード
10
10
 
11
- HTML
11
+ ```html
12
12
  <p>
13
13
  <input type="button" id="start" value="START">
14
14
  <input type="button" id="stop" value="STOP" disabled>
15
15
  <input type="button" id="reset" value="RESET">
16
16
  <input type="number" id="time">
17
17
  </p>
18
-
19
- js
18
+ ```
19
+ ```javaScript
20
20
  var time = document.getElementById("time");
21
21
 
22
22
  start.onclick = function(){
23
23
  time = document.getElementById("time");
24
24
  counter = setInterval(count,1000);
25
25
  toggle();
26
-  }
27
26
 
27
+ ```
28
+
28
29
  ### 試したこと
29
30
  time = 180 のように直接時間を入力した場合、正常に機能します。
30
31