質問: ''; } ``` ここのif文の上の方しか動かないようなのですが、それの理由がわかりません。 これの解決方法をご教示いただきたいと思っております。 よろしくお願い致します。
回答: 関数内で `return false;` とすると、それ以降の処理は行われません。なので、変数に状況を入れておいて最後にそれを `return` すると良いと思います。 ``` var mailE = ' (メールアドレスを入力して下さい)'; var nameE = ' (名前を入力して下さい)'; document.getElementById('register').onsubmit = function() { var mailCheck = document.getElementById('register').mail.value; var nameCheck = document.getElementById('register').namae.value; //入力してあればtrue 未入力ならfalse var MC = jg(mailCheck); var NC = jg(nameCheck); var flag = true; // 追加 if ( !MC && !NC ) { // 多分無くてもよい。 document.getElementById('mailerror').textContent = mailE; document.getElementById('nameerror').textContent = nameE; flag = false; // 変更 } if ( !MC ) { document.getElementById('mailerror').textContent = mailE; flag = false; // 変更 } else { document.getElementById('mailerror').textContent = ""; } if ( !NC ) { document.getElementById('nameerror').textContent = nameE; flag = false; // 変更 } else { document.getElementById('nameerror').textContent = ''; } return flag; // 追加 } function jg(mn) { var mn; if ( mn.length != 0 ) { mn = true; return mn; } else { mn = false; return mn; } } ``` **動くサンプル:**