回答編集履歴

2

表現の修正

2019/07/23 23:54

投稿

think49
think49

スコア18166

test CHANGED
@@ -1,4 +1,4 @@
1
- ### 変更前値取得タイミング
1
+ ### オブジェクト差分比較
2
2
 
3
3
 
4
4
 
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ```
9
+ ```JavaScript
10
10
 
11
11
  for (let key of Object.keys(afterData)) {
12
12
 
@@ -26,6 +26,10 @@
26
26
 
27
27
 
28
28
 
29
+ ### defaultValue との比較
30
+
31
+
32
+
29
33
  > 現状の入力フォームの仕様は全てのキーバリューをセットして送信してしまうので、複数人で入力して保存すると上書き保存され入力された項目が消えてしまいます。
30
34
 
31
35
 
@@ -38,9 +42,17 @@
38
42
 
39
43
  この仕様にするなら、input要素やtextarea要素側で `defaultValue` プロパティと比較する方がスマートかと思います。
40
44
 
45
+ select要素には初期値取得の機構がないので、初回表示時に `data-defaultSelectedIndex` に埋め込んでおく等の工夫が必要ですが。
41
46
 
42
47
 
48
+
49
+ - `input` イベントで監視 -> **動的**に差分比較
50
+
51
+ - `submit` イベントで監視 -> 最期にまとめて差分比較
52
+
53
+
54
+
43
- ### 理想的な動作
55
+ ### 上書き前に確認する
44
56
 
45
57
 
46
58
 

1

表現の修正

2019/07/23 23:54

投稿

think49
think49

スコア18166

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
- ### りそうてきどうさ
43
+ ### 理想的動作
44
44
 
45
45
 
46
46
 
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- submit直前の変更前値の更新日時」と「現行の変更前値の更新日時」を比較して、相違なければsubmit
53
+ - submit直前の変更前値の更新日時」と「現行の変更前値の更新日時」を比較して、相違なければsubmit
54
54
 
55
55
  - 相違あれば、変更前値を別の場所に読み込み、「変更前値をリロードして編集を継続するか」をユーザに尋ねる
56
56