
javascriptで入力フォームが空欄の時に送信ボタンを押すと、アラートによるエラーを出すコードを書いています。
このコードできちんと起動します。
<script>タグ内の、let msgで""の空白の変数を指定して、その下のコード
if (email.value == "")の意味は、セレクト名emailのフォームが空白ならばメールアドレスが入力されていません、というエラーを出してください・・・という意味ですよね。
しかしその次の
msg += "メールアドレスが入力されていません";
msg+=の変数msgも空白という意味のようですが、空白とい意味のmsgの変数に"メールアドレスが入力されていません"を結合させる理由は、なんでしょうか?
msgはこの場合単純に入力フォームの空白のことを意味するのでしょうか?それともmsgの意味は付属画像にあるような、ブラウザのアラートのグレーの四角い板でしょうか?
回答よろしくお願いいたします。
<body>
<form action="form1.php" method="post" id="form">
メールアドレス
<input type="text" class="form1" name="email" id="email" value="" />
<button id="submit" class=""></button>
</form>
</body>
<script>
form.addEventListener('submit', function(event) {
let msg = "";
if (email.value == "") msg += "メールアドレスが入力されていません";
if (msg != "") {
event.preventDefault();
alert(msg);
}
});
</script>

No.1ベストアンサー
- 回答日時:
こんにちは
ご存じと思いますが
>msg += "メールアドレスが入力されていません";
は、
msg = msg + "メールアドレスが入力されていません";
と同値です。
>結合させる理由は、なんでしょうか?
ご提示のケースで言えば、特に意味はないですね。
もとの値に何か入っていたり、条件によって連結しなかったりを繰り返すようなら意味がありますよね?
例えば、複数の入力欄をチェックして、問題のある部分のメッセージだけを連結してゆくとか・・
ご提示の場合であれば、「+」を除いて
if (email.value == "") msg = "メールアドレスが入力されていません";
としても同じですし、その前の1行も併せてしまって、
const msg = email.value?"":"メールアドレスが入力されていません";
のように、まとめても同じ結果が得られます。
(多分、記述した人の気分でしょう)
もっと言うなら、変数msg の値が "" のままで使われる(=表示される)ことはないので、チェック部分全体を
if (! email.value) {
event.preventDefault();
alert("メールアドレスが入力されていません");
}
としてしまっても、実質的には同じ内容になりますね。
(msg 変数が不要になりました)
No.2
- 回答日時:
No1です。
>質問に記載しなかったのですが~~
記載のない情報に関しては、こちらでは知る由もありません。
No1で丁度例に挙げておいた「複数の~~」の場合に該当るようですので、その場合であれば意味があります。
入力のない欄に対するメッセージだけをmsg変数に作成する意図でしょう。
>if (name.value == "") "名前を入力して下さい";
>でmsg +=の部分 を消去するとボタンを押すとエラーになってしまいます。
文法的に成立していませんので、処理内容がどうの以前にエラーが発生します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールフォームの入力確認(チ...
-
入力フォーム内のタグ開始記号...
-
フォームの表示が消えてしまう...
-
javascriptの勉強中です
-
HP上での自動入力について
-
入力欄の消去方
-
txtbox「確認用メール」へのペ...
-
セレクトボックスの操作につい...
-
メールアドレス確認 javascrip...
-
テキスト/セレクトバリューの複製
-
日付入力
-
JavaScriptを使って、整合する方法
-
フォームでの入力必須項目について
-
javascriptの勉強中です。
-
onChangeの使い方について教え...
-
参考書通りに入力したつもりで...
-
テキストボックスの値を消したい
-
フォームへの誤った文字入力を...
-
ダイアログでFORMのsubmit()
-
フレーム内で計算した結果を他...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文末の改行コードを削除したい
-
JSPとJavaScriptの連携について...
-
onClickとsubmitの処理順序
-
日付入力欄の表示形式を自動的...
-
javascriptで入力フォームが空...
-
条件により、リンク先に画面遷...
-
2重でメール入力チェックをした...
-
入力した文字を大文字に変換し...
-
フォームの値が0だったら空白...
-
Javascript 郵便番号の入力欄で...
-
submit後、同じ入力欄に戻らせ...
-
onChangeの使い方について教え...
-
javascriptでのフォーム自動入...
-
Webブラウザにてページのりロー...
-
フォームの<TEXTAREA>で文字数...
-
テキストボックス入力を半角英...
-
テキスト入力フォームの値を画...
-
テキストボックスを無効にする...
-
javaでフォーム入力の確認と文...
-
テキストフィールド入力文字列...
おすすめ情報
質問に記載しなかったのですが、メールアドレスの入力欄の他に名前を入力する欄がありまして、
空白の場合にボタンを押すと、複数チェックする仕様でした。
form.addEventListener('submit', function(event) {
let msg = "";
if (email.value == "") msg += "メールアドレスが入力されていません";
if (name.value == "") msg += "名前を入力して下さい";
if (msg != "") {
event.preventDefault();
alert(msg);
}
});
続きます。すみません。
msgは空白""を意味しますが
msg += "名前を入力して下さい";は、なぜmsgと"名前を入力して下さい"を結合代入する必要があるのでしょうか?
上記のコードに
if (name.value == "") "名前を入力して下さい"; でmsg +=の部分 を消去するとボタンを押すとエラーになってしまいます。