
ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表示されるようにしたいです。
名前の入力フォームが空の時にJavascriptによるアラートエラーがボタンをクリックした時に出るようになっています。それとは別にさらに、ボタンを押したときに、アラートの他に、入力フォームの下部に 「入力欄が空白です」というテキストメッセージが表示されるようにしたいです。
付属画像のような感じです。
どうコードを書いたらよいでしょうか?
回答よろしくお願いいたします
<!DOCTYPE html>
<html lang="ja">
<head>
<meta content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="mouthlp.css">
<title></title>
<style>
</style>
</head>
<body>
<!--javaによるエラー表示のためid="form"を追加-->
<form action="LPmouth1.php" method="post" id="form">
<div class="auto-style1">
<p class="tel-titile">
名前:※
</p>
<input type="text" class="name" name="name" id="name"
value="" />
</div>
<div class="auto-style1010">
<!--classを2つ追加 example8、画像の大きさ指定 button-simple yureru-sは左右に動くアニメーション-->
<button type="submit" id="submit" name="submit" class="auto-style40" value="submit">
<img src="image/25mouth.png" alt="確認画面へ" class="button-simple yureru-s example80" /></button>
</div>
</form>
<div class="kuuhaku30"></div><!--空白の設定-->
<script>
// javaでエラーメッセージの表示
const key = 'date_key';
const form = document.querySelector('#form');
const name = document.querySelector('#name');
form.addEventListener('submit', function(event) {
let msg = "";
if (name.value == "") msg += "名前が入力されていません。\n";
if (msg != "") {
event.preventDefault();
alert(msg);
}
});
form.addEventListener('change', function() {
if (name.value != "") sessionStorage.setItem('name', name.value);
});
name.value = sessionStorage.getItem('name');
</script>
</body>
</html>

No.1ベストアンサー
- 回答日時:
こんばんは
>入力フォームの下部に 「入力欄が空白です」というテキストメッセージが
>表示されるようにしたいです。
メッセージを各要素に表示するだけなら、前のご質問に回答した required 属性を利用することでほぼ同様のことはスクリプトなしでも実現可能です。
https://oshiete.goo.ne.jp/qa/12920671.html
一方で、添付の図を見ると、文言がそれぞれでの要素によって変わっているようですが・・・
チェックの都度、メッセージをを追加・挿入するような方法でも勿論可能ですが、あらかじめメッセージをHTML内に記述しておいて、表示/非表示の切り替えで行う方法が簡単だと思います。
以下、ごく簡単な一例です。(空白のチェックしか行っていません)
※ 対象は input[type="text"] にしてありますが、セレクタを変えることで、特定の条件の要素だけを対象にすることも可能です。
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
input[type="text"] { width: 20em; height: 2em; border: 2px solid navy; }
.alert { font-size: 0.85em; font-weight: bold; color: crimson; }
.alert { visibility: hidden; }
.alert.show { visibility: visible; }
</style>
</head>
<body>
<form action="" id="form1">
<div>
お名前:<br />
<input type="text" name="name" value="" />
<div class="alert">・お名前をご入力してください</div>
</div>
<div>
ふりがな:<br />
<input type="text" name="kana" value="" />
<div class="alert">・ふりがなをご入力してください</div>
</div>
<p><button type="submit" >SUBMIT</button></p>
</form>
<script>
{
const
form1 = document.getElementById('form1'),
inputs = [...form1.querySelectorAll('input[type="text"]')],
Checker = (elm)=>{
const cls = elm.nextElementSibling.classList;
const flag = elm.value.trim() == "";
if(flag) cls.add('show'); else cls.remove('show');
return flag;
};
form1.addEventListener('change', e=>{
if(inputs.indexOf(e.target) >= 0) Checker(e.target);
});
form1.addEventListener('submit', e=>{
if(inputs.map(e => Checker(e)).indexOf(true) >= 0) e.preventDefault();
});
}
</script>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンのなかに表示する文字を...
-
getParameterで値が取得できず...
-
FORMタグ内に複数submitボタン...
-
ハイパーリンクをインプットボ...
-
<div>部分のみの更新
-
戻ると、記入フォームの内容が...
-
ボタンを押さずにボタンを押す...
-
formの送信ボタンをテキストに...
-
リンクでPOSTデータを送信する...
-
<FORM> </FORM> の中に さらに...
-
<form>タグについて
-
submitボタンにvalue属性の値で...
-
VBAで一時中断したプログラムの...
-
ASP.net MVC セッションハイジ...
-
DVD-Rの「セッションを閉じる」...
-
ACCESS2010 WEBブラウザーコン...
-
エクセルVBAで画面の大きさを取...
-
WebBrowserでGmailに自動ログイン
-
aspxをhtmlに変換する方法について
-
GridViewの行をダブルクリック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLボタンの文字色を変え...
-
ボタンのなかに表示する文字を...
-
getParameterで値が取得できず...
-
戻ると、記入フォームの内容が...
-
ただいま勉強始めたての初心者...
-
ボタンをクリックした時に、入...
-
submitボタンにvalue属性の値で...
-
FORMタグ内に複数submitボタン...
-
リンクでPOSTデータを送信する...
-
開くと同時に自動submit
-
checkboxとlabelがずれる
-
SUBMITボタンを表示させないでS...
-
INPUTのボタン周囲のスペース
-
リセットボタン などで、リン...
-
Photoshopエレメンツで
-
チェックボックスの値をコピー
-
UWSC
-
テキストBOXの入力を参照ボ...
-
formの送信ボタンをテキストに...
-
異なるformのsubmitボタンを同...
おすすめ情報