回答編集履歴

1

追記

2017/08/14 01:41

投稿

chelsy7110
chelsy7110

スコア596

test CHANGED
@@ -1,41 +1,3 @@
1
- ```javascript
2
-
3
- $('.contact-form form').submit(function(){
4
-
5
- var error_flag = false;
6
-
7
- $(this).children('input, textarea').each(function(){
8
-
9
- var body = $(this).val();
10
-
11
- if (!body) {
12
-
13
- $(this).prev('.error-message').text('入力してください');
14
-
15
- error_flag = true;
16
-
17
- } else {
18
-
19
- $(this).prev('.error-message').text('');
20
-
21
- }
22
-
23
- });
24
-
25
-
26
-
27
- if (!error_flag) {
28
-
29
- $('.contact-form').html('<h4>お問い合わせありがとうございます。</h4>');
30
-
31
- }
32
-
33
- return false;
34
-
35
- });
36
-
37
- ```
38
-
39
1
  1行ずつ見ていきましょう
40
2
 
41
3
  ```javascript
@@ -117,3 +79,43 @@
117
79
 
118
80
 
119
81
  こんな感じの動きです。
82
+
83
+
84
+
85
+ ---
86
+
87
+ 追記
88
+
89
+ 回答1,3,4
90
+
91
+ 「一つもエラーが無ければ」という条件のために必要です。
92
+
93
+ 下で```if(!error_flag)```という条件で```お問い合わせありがとうございます```と表示するとしています。
94
+
95
+ これは**error_flagを反転させたものがtrueならば**という意味です。
96
+
97
+ すなわち**error_flagがfalseならば**という条件です。
98
+
99
+ error_flagがeachの中で書き換えられなければ、お問い合わせありがとうございますに書き換えなさいという風になります。
100
+
101
+
102
+
103
+ if(!body)の意味ですが、ifの括弧の中身はtrueかfalseで判定されます。
104
+
105
+ [http://qiita.com/phi/items/723aa59851b0716a87e3](http://qiita.com/phi/items/723aa59851b0716a87e3)
106
+
107
+ ここを見ると```"hoge"```は**true**、```""```は**false**と書いてあります。
108
+
109
+ bodyはinputやtextareaの内容ですので、何も入力されていないとfalseになり、それを反転させているので、```if(!body)```はbodyに何も入っていなければ実行されます。
110
+
111
+ eachの中でbodyが一回でも空だった場合、error_flagはtrueになります。
112
+
113
+ error_flagがfalseのままであるには、bodyには全部何かが入っている(フォームに全て入力されている)という条件が必要になります。
114
+
115
+ それが満たされるとき、お問い合わせありがとうございますに書き換えなさいという風になります。
116
+
117
+
118
+
119
+ 回答2
120
+
121
+ その通りです。