回答編集履歴
2
表現の修正
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
表現の修正
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
|
-
|
53
|
+
- 「submit直前の変更前値の更新日時」と「現行の変更前値の更新日時」を比較して、相違なければsubmit
|
54
54
|
|
55
55
|
- 相違あれば、変更前値を別の場所に読み込み、「変更前値をリロードして編集を継続するか」をユーザに尋ねる
|
56
56
|
|