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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

1回答

9296閲覧

contacフォームにおいて、「必須項目です」のエラーメッセージを表示させたいです。

kenta1120

総合スコア39

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2022/03/25 00:14

contact formを自作しているのですが、HTMLとCSSのみで必須項目が未入力の際にエラーメッセージとして、以下の画像の
ように「必須項目です入力してください」を表示させたいのですが、その方法が分かりません。

イメージ説明

【解決の為に試したこと】
①、該当のinputタグに対して「required」をつける
②、divタグで表示したいエラーメッセージを作成し、以下をcssにて実装

CSS

1.p-contact__error { 2 display: none; 3 font-size: 1.3rem 4 color: red; 5} 6 7input:invalid + .p-error { 8 display: block; 9} 10

③、input[type=“text”]を追加

CSS

1.p-contact__error { 2 display: none; 3 font-size: 1.3rem 4 color: red; 5} 6 7input[type=“text”]:invalid + .p-error { 8 display: block; 9}

④、上記のコード内にて、「:invalid」を「:required」に変更

以上です。

以下は該当箇所のHTMLとCSSファイルです。
よろしくお願い致します!

HTML

1<section> 2 <div class="p-news__titleArea" data-en="CONTACT"> 3 <form action="#" class="p-contact__form"> 4 <dl class="p-contact__area"> 5 <div class="p-contact__control"> 6 <dt> 7 <label class="p-contact__label--required" for="your-name">お名前</label> 8 </dt> 9 <dd> 10 <input id="your-name" class="p-contact__input" type="text" name="your-name" value="" placeholder="" required> 11 </dd> 12 <div class="p-contact__error">必須項目です入力してください</div> 13 </div> 14 </dl> 15 <div class="p-contact__btn"> 16 <button id="" class="p-contact__submit" type="submit">確認画面へ</button> 17 </div> 18 </form> 19 </div> 20 </section>

CSS

1.p-contact__error { 2 display: none; 3 font-size: 1.3rem; 4 color: #dd3f1d; 5 } 6 7 input[type="text"]:required + .p-contact__error { 8 display: block; 9 } 10 11 input:invalid:focus { 12 border: solid 1px #dd3f1d; 13 outline: 0; 14 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

+ .p-error+ .p-contact__error になおして、

html

1 <dd> 2 <input id="your-name" class="p-contact__input" type="text" name="your-name" value="" placeholder="" required> 3 </dd> 4 <div class="p-contact__error">必須項目です入力してください</div>

これを

html

1 <dd> 2 <input id="your-name" class="p-contact__input" type="text" name="your-name" value="" placeholder="" required> 3 <div class="p-contact__error">必須項目です入力してください</div> 4 </dd>

こうすると期待する動作になると思います。

https://developer.mozilla.org/ja/docs/Web/CSS/Adjacent_sibling_combinator

隣接兄弟結合子 (adjacent sibling combinator, +) は 2 つのセレクターを接続し、 2 つ目の要素が 1 つ目の要素の 直後 にあって、両者が同じ親要素の子同士である場合に一致します。

投稿2022/03/25 00:18

編集2022/03/25 00:20
int32_t

総合スコア21927

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

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

kenta1120

2022/03/25 03:05 編集

ご回答ありがとうございます! また、自身の単純なクラス名のスペルミスも失礼致しました。 確かに表示されました。ありがとうございます! ただ、この表示を未入力の場合にのみ表示させたいのですが、何か方法はございますでしょうか? 現状では入力をしても未入力の状態であっても常に表示が出ておりまして、、 ちなみに、jsは使用せずにHTMLとCSSのみで制御する形となります。
int32_t

2022/03/25 03:07

<input> に required 属性が付いていて CSS セレクタが「input:invalid + ...」なら未入力の場合のみ表示になると思います。
kenta1120

2022/03/25 03:21

出来ました! ありがとうございます。 大変助かりましたm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問