質問編集履歴
3
内容変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
ページをリロードしてもリセットせず経過時間を表示させ続けたい
|
body
CHANGED
@@ -1,60 +1,44 @@
|
|
1
|
-
### 前提・実現したいこと
|
1
|
+
### 前提・実現したいこと。
|
2
|
-
今現在Ruby on Rails5で禁煙の手助けとなるアプリケーションを作成しているプログラミング初心者です。
|
3
2
|
|
4
|
-
|
3
|
+
Ruby on rails5で経過時間をビューに表示させるためにjsファイルを用いて経過時間を表示させました。
|
5
4
|
|
6
|
-
|
5
|
+
しかしページを更新(リロード)するとタイマーがリセットされてしまいます。
|
7
6
|
|
7
|
+
経過時間をリセットさせずに表示し続けたいです。
|
8
8
|
|
9
|
-
登録ボタンをクリックと同時にトップページに移動しビュー(トップページ)にjsファイルに記載の関数を呼び出すことができると解決できると思うのですが…
|
10
9
|
|
11
|
-
|
10
|
+
### index.html.haml(経過時間を表示するビューです)
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
### app/views/users/regisrations/new.html.haml
|
18
|
-
|
19
12
|
```
|
20
|
-
|
13
|
+
%input{type: 'button', value: 'スタート', onclick: 'startShowing();'}
|
21
|
-
|
22
|
-
(省略)
|
23
|
-
|
24
|
-
.actions
|
25
|
-
= f.submit "禁煙開始" #ここが新規登録ボタンです。
|
26
|
-
```
|
27
|
-
|
28
|
-
### index.html.haml(経過時間を表示させたいビューです)
|
29
|
-
|
30
|
-
```
|
31
|
-
%h2 あなたの禁煙時間
|
32
|
-
#ここで呼び出したいです。
|
33
14
|
%form{action: '#', name: 'form1'}
|
34
15
|
%input{type: 'text', name: 'field1', size: '4'}日
|
35
16
|
%input{type: 'text', name: 'field2', size: '2'}時間
|
36
17
|
%input{type: 'text', name: 'field3', size: '2'}分
|
37
18
|
%input{type: 'text', name: 'field4', size: '2'}秒
|
19
|
+
|
38
20
|
```
|
39
21
|
|
40
|
-
###
|
22
|
+
### timer.js
|
41
23
|
|
42
24
|
```
|
43
25
|
var start = new Date();
|
44
26
|
|
45
27
|
// 初期化
|
28
|
+
var day = 0;
|
46
29
|
var hour = 0;
|
47
30
|
var min = 0;
|
48
31
|
var sec = 0;
|
49
32
|
var now = 0;
|
50
33
|
var datet = 0;
|
51
34
|
|
52
|
-
function
|
35
|
+
function startShowing(){
|
53
36
|
|
54
37
|
now = new Date();
|
55
38
|
|
56
|
-
|
39
|
+
datet = parseInt((now.getTime() - start.getTime()) / 1000);
|
57
40
|
|
41
|
+
day = parseInt(datet / 86400);
|
58
42
|
hour = parseInt(datet / 3600);
|
59
43
|
min = parseInt((datet / 60) % 60);
|
60
44
|
sec = datet % 60;
|
@@ -64,12 +48,13 @@
|
|
64
48
|
if(min < 10) { min = "0" + min; }
|
65
49
|
if(sec < 10) { sec = "0" + sec; }
|
66
50
|
|
67
|
-
|
51
|
+
// テキストフィールドにデータを渡す処理
|
52
|
+
document.form1.field1.value = day;
|
68
|
-
document.form1.
|
53
|
+
document.form1.field2.value = hour;
|
69
|
-
document.form1.
|
54
|
+
document.form1.field3.value = min;
|
70
|
-
document.form1.
|
55
|
+
document.form1.field4.value = sec;
|
71
56
|
|
72
|
-
setTimeout("
|
57
|
+
setTimeout("startShowing()", 1000);
|
73
58
|
|
74
59
|
}
|
75
60
|
```
|
2
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
|
4
4
|
deviseで作成した新規登録画面で登録を完了するとトップページに移動しビューに登録からの経過時間を表示させたいです。
|
5
5
|
|
6
|
-
経過時間を表示するjsファイルは作成できたのですが、登録ボタンを押したと同時にトップページ
|
6
|
+
経過時間を表示するjsファイルは作成できたのですが、登録ボタンを押したと同時にトップページ移動し経過時間を表示する方法を色々調べてみたのですが分かりませんでした。
|
7
7
|
|
8
8
|
|
9
|
-
登録ボタンをクリックと同時にトップページ
|
9
|
+
登録ボタンをクリックと同時にトップページに移動しビュー(トップページ)にjsファイルに記載の関数を呼び出すことができると解決できると思うのですが…
|
10
10
|
|
11
11
|
分からなかったので申し訳ないのですが、教えて頂けると幸いです泣
|
12
12
|
|
1
タイトル変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
誰か助けてください!経過時間をビューに表示させたいです!泣
|
body
CHANGED
File without changes
|