質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1251閲覧

cssにおけるerror_flagを書く位置が分かりません

tanakashouzoux

総合スコア52

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/09/27 06:56

編集2017/09/27 06:57

cssに言語を入力

1 $('.contact-form form').submit(function(){ 2 var error_flag=false; 3 $(this).children('input,textarea').each(function(){ 4 var body = $(this).val(); 5 if(!body){ 6 $(this).prev('.error-message').text('入力してください'); 7 error_flag=true; 8 }else{ 9 $(this).prev('.error-message').text(''); 10 } 11 12 }) 13 if(!error_flag){ 14 $('.contact-form').html('<h4>お問い合わせありがとうございます。</h4>'); 15 } 16 17 return false; 18 }) 19

コード上から2行目の「var error_flag=false;」を「var body = $(this).val();」の上に持ってくるとエラーが出るのですが、ダメな理由が分かりません
詳しい方、ご教示ください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/09/27 07:06

cssではなくjavascriptですね。
guest

回答2

0

ベストアンサー

インデントがずれているので見づらいですが、下の方にあるif(!error_flag){は、.eachで回している関数の外側にあたります。

関数の外側で定義した変数は、内側でも使えますが、逆は無理なのです。

投稿2017/09/27 07:07

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラーメッセージの提示がないのでソースを見た限りでしかないのですが、

下記は、 $(this).children('input,textarea').each(function(){の外ですよね。

javascript

1 if(!error_flag){ 2 $('.contact-form').html('<h4>お問い合わせありがとうございます。</h4>'); 3 } 4

$(this).children('input,textarea').each(function(){の中に書くことにより、
varは変数の定義を行うものですが、グローバル空間で定義されていない限り、function(){}内でしか生きません(「変数のスコープ」で調べてください)
つまり、内部で定義されたものなので、そのスコープの外では参照できない、ということになります。
変数の未定義エラーのようなものが出ているはずです。

もし、変数error_flagを汎用的に使いたければグローバル空間$('.contact-form form').submit(function(){よりも外で定義すると良いでしょう。

投稿2017/09/27 07:05

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問