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

質問編集履歴

3

アイコンのつけ忘れ

2017/01/06 09:20

投稿

Scarlett
Scarlett

スコア12

title CHANGED
File without changes
body CHANGED
File without changes

2

リンク修正

2017/01/06 09:20

投稿

Scarlett
Scarlett

スコア12

title CHANGED
File without changes
body CHANGED
@@ -5,10 +5,12 @@
5
5
  > 空の配列定義して、初期値の値としてfor文で回して配列にいれる。
6
6
  > その配列をinputで入力のあったタイミングでハイライトとfor文をイベントとして発火させ、for文内のif文で比較しながら、書き換えのない列をdisabledで無効化。
7
7
 
8
- という書き方をしていたのですが(https://jsfiddle.net/5kfmj3a8/)、イベント発火した親要素とformを比較しても同じことができるはずだから、その書き方にしてほしい。と言われて、うまくいかずに困っています。
8
+ という書き方をしていたのですが([前のコードはこちら](https://jsfiddle.net/5kfmj3a8/))、イベント発火した親要素とformを比較しても同じことができるはずだから、その書き方にしてほしい。と言われて、うまくいかずに困っています。
9
9
 
10
10
  最初のコードは、formの群をdivで包んでいたのですが、class="container"と同じところにつけるように指示がきたので、HTML構造が少し書き換わりました。
11
- https://jsfiddle.net/514y16y7/
12
11
 
12
+ [本題の修正中のコードがこちら](https://jsfiddle.net/514y16y7/)
13
+
14
+
13
15
  お力をお貸しいただけると、大変嬉しく思います。
14
16
  よろしくお願いします。

1

コードの修正

2017/01/06 09:19

投稿

Scarlett
Scarlett

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,38 +1,14 @@
1
1
  inputに入力があったら、該当箇所をハイライトし、他の入力箇所の無効化と、入力のあった箇所と隣接したsubmit以外を無効化。
2
2
  編集してる1つだけしか更新できません、という意図の実装がしたいです。
3
3
 
4
+
4
5
  > 空の配列定義して、初期値の値としてfor文で回して配列にいれる。
5
6
  > その配列をinputで入力のあったタイミングでハイライトとfor文をイベントとして発火させ、for文内のif文で比較しながら、書き換えのない列をdisabledで無効化。
6
7
 
7
- という書き方をしていたのですが、イベント発火した親要素とformを比較しても同じことができるはずだから、その書き方にしてほしい。と言われて、うまくいかずに困っています。
8
+ という書き方をしていたのですが(https://jsfiddle.net/5kfmj3a8/)、イベント発火した親要素とformを比較しても同じことができるはずだから、その書き方にしてほしい。と言われて、うまくいかずに困っています。
8
9
 
10
+ 最初のコードは、formの群をdivで包んでいたのですが、class="container"と同じところにつけるように指示がきたので、HTML構造が少し書き換わりました。
11
+ https://jsfiddle.net/514y16y7/
9
12
 
10
13
  お力をお貸しいただけると、大変嬉しく思います。
11
- よろしくお願いします。
14
+ よろしくお願いします。
12
-
13
- ```html
14
- <div id="change_form">
15
- <form action=""><input name="input_text" type="text" value="hoge"><input type="submit" value="更新"/></form>
16
- <form action=""><input name="input_text" type="text" value="hogehoge"><input type="submit" value="更新"/></form>
17
- <form action=""><input name="input_text" type="text" value="hogehogehoge"><input type="submit" value="更新"/></form>
18
- <form action=""><input name="input_text" type="text" value="hogehogehogehoge"><input type="submit" value="更新"/></form>
19
- <form action=""><textarea name="" cols="80" rows="5"></textarea><input type="submit" value="更新"/></form>
20
- </div>
21
- <script>
22
- document.addEventListener("input", function(e){markAsEdited(e)});
23
- function markAsEdited(e) {
24
-
25
- var t = e.target;
26
- var parent = t.parentNode;
27
- t.style.backgroundColor = "yellow";
28
-
29
- var elements = document.querySelectorAll("#change_form form");
30
- for (var i = 0; i < elements.length; i++) {
31
- if(elements !== parent) {
32
- for (var i = 0; i < parent.length; i++) {
33
- parent.querySelectorAll("input").disabled = true;
34
- }
35
- }
36
- }
37
- }</script>
38
- ```