質問編集履歴

2

文言の修正

2018/09/24 15:37

投稿

sugamaan
sugamaan

スコア6

test CHANGED
File without changes
test CHANGED
@@ -56,6 +56,10 @@
56
56
 
57
57
 
58
58
 
59
+ どうぞ、ご意見・アドバイス等頂けますようお願いいたします。
60
+
61
+
62
+
59
63
  ## 実行環境
60
64
 
61
65
  Ruby 2.3.1

1

内容の改善

2018/09/24 15:37

投稿

sugamaan
sugamaan

スコア6

test CHANGED
@@ -1 +1 @@
1
- Railsアプリにて、beforeunloadを使いページ離脱時に確認ダイアログを表示させる記述を、jsファイルに分割したい。
1
+ Railsアプリにて、beforeunloadを使いページ離脱時に確認ダイアログを表示させる記述を、個別のjsファイルに分割したい。
test CHANGED
@@ -1,26 +1,58 @@
1
+ ```ruby
2
+
3
+ = form_for [@user] do |f|
4
+
5
+ = f.text_field :name
6
+
7
+ = f.submit 'Submit', { id: 'js-relod_submit' }
8
+
9
+
10
+
11
+ :javascript
12
+
13
+ var unloaded = function (e) {
14
+
15
+ e.returnValue = '離脱するとページが保存されない場合があります。'
16
+
17
+ };
18
+
19
+ window.addEventListener('beforeunload', unloaded, false);
20
+
21
+
22
+
23
+ document.getElementById('js-relod_submit').addEventListener('click', function(){
24
+
25
+ window.removeEventListener('beforeunload', unloaded, false);
26
+
27
+ });
28
+
29
+ ```
30
+
31
+
32
+
1
33
  ## 実現したいこと
2
34
 
3
35
 
4
36
 
5
- - hamlファイルに直書きしているjavascriptを、個別の~jsファイルに切り分けたい
37
+ - hamlファイルに直書きしているjavascriptを、個別の~jsファイルに切り分けたい
6
38
 
7
39
  - 個別のjsファイルに切り分けた上で、window.addEventListenerを特定のviewファイルで発生させたい。
8
40
 
9
41
 
10
42
 
11
- 詳細
12
43
 
44
+
45
+ Railsアプリ内で、入力途中のformから移動する際、確認ダイアログを出す機能を実装していました。
46
+
13
- [Railsアプリにて、beforeunload使ページ離脱時に確認ダイアログを表示させ](https://qiita.com/sugamaan/items/c32a069df8dcc98cf351)
47
+ 現在、上記のように書き、機能自体は実装できたのですが、hamlファイルにjsコード直接書てしまっていため、個別の~jsファイルに切り出したいです。
14
48
 
15
49
 
16
50
 
17
- ## 現状
51
+ 個別のjsファイルに切り出した場合、全ての遷移時に、確認ダイアログが出てしまいます。
18
52
 
53
+ それは、全てのviewにおいて`window.addEventListener('beforeunload', unloaded, false);
19
54
 
20
-
21
- - 個別のjsファイルに切り出してしまうと、全て遷移時に確認ダイアログでてし
55
+ `が発生してしまうからだ思うですが具体的な解決策わかりせん
22
-
23
- - そのため、個別のhamlファイルにjavascriptを書いている。
24
56
 
25
57
 
26
58