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

回答編集履歴

1

追記

2019/02/19 07:10

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -1,3 +1,43 @@
1
1
  本題からそれますが、
2
2
  そもそもの作りのほうから見直された方が良いのではないでしょうか。
3
- hideしておいてshowではなく、入力チェックで引っかかった処理の分だけappendするやり方が本来望ましいと思います。
3
+ hideしておいてshowではなく、入力チェックで引っかかった処理の分だけappendするやり方が本来望ましいと思います。
4
+
5
+ ----
6
+
7
+ 若干無理やりです。
8
+ errorのliを回しながら[is:containsで検索](http://kihon-no-ki.com/jquery-object-contains-text)かけます。
9
+ ```js
10
+ $(function(){
11
+ const error_node = $("#firstname").parent("p").prev("ul.errorList_text").children("li");
12
+ for(let i=0;i<error_node.length;i++){
13
+ if($(error_node[i]).is(":contains('未入力')")){
14
+ $(error_node[i]).show();
15
+ }
16
+ }
17
+ });
18
+ ```
19
+
20
+ HTMLも下記のようにして#firstname部分を変更し確認してみました。
21
+ ```html
22
+ <ul class="errorList_text">
23
+ <li style="display:none;"><img src="caution.jpg" alt="error">1小文字のみ有効です。</li>
24
+ <li style="display:none;"><img src="caution.jpg" alt="error">2未入力です。</li>
25
+ </ul>
26
+ <p>
27
+ <input type="text" id="firstname1">
28
+ </p>
29
+ <ul class="errorList_text">
30
+ <li style="display:none;"><img src="caution.jpg" alt="error">小文字のみ有効です。</li>
31
+ <li style="display:none;"><img src="caution.jpg" alt="error">未入力です。</li>
32
+ </ul>
33
+ <p>
34
+ <input type="text" id="firstname2">
35
+ </p>
36
+ <ul class="errorList_text">
37
+ <li style="display:none;"><img src="caution.jpg" alt="error">小文字のみ有効です。</li>
38
+ <li style="display:none;"><img src="caution.jpg" alt="error">未入力です。</li>
39
+ </ul>
40
+ <p>
41
+ <input type="text" id="firstname3">
42
+ </p>
43
+ ```