• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:japascriptでセレクトボックス付近にテキス)

japascriptでセレクトボックス付近にテキス空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで表示されるアラートと同時に入力フォーム付近に、さらにテキストによるエラーメッセージを同時に表示させたい

このQ&Aのポイント
  • japascriptを使用して、入力フォームのボタンをクリックした際に、ブラウザの上部からアラートが表示されるようになっています。しかし、入力フォーム付近に追加のエラーメッセージを表示することができません。
  • セレクトボックス付近の赤いテキストメッセージが表示されない問題があります。コードのstayleタグの下と一番下のjavascriptコードに赤いテキストエラーを表示させるコードが書かれています。
  • 入力フォームの隣にエラーメッセージを表示するためのコードの修正を試みましたが、問題は解決しませんでした。コードを以下のURLで確認できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5253/13739)
回答No.1

form.querySelectorAll('input[type="text"]') としているから <input type="text"> のタグしか対象として動作していません。 後半のJavaScriptで個別の判定をしている訳ですから、 <div id="age.alert" class="alert">・年代をご選択下さい</div> の様に個別にIDを振って if (age.value == "") { msg += "年代を選択して下さい。\n"; document.getElementById('age.alert').classList.add('show'); } else { document.getElementById('age.alert').classList.remove('show'); } と言った感じで個別にアラート表示を切り替えれば簡単じゃないですか。

その他の回答 (1)

  • dell_OK
  • ベストアンサー率13% (770/5733)
回答No.2

回答No.1さまが言われるようにセレクトボックスが対象になっていません。 対象に追加するには、こんな感じで。 ---- inputs = [ ...form.querySelectorAll('input[type="text"]'), ...form.querySelectorAll('select')], ---- クラスにshowを追加している部分で使われているnextElementSiblingは同階層ノードの次の要素を返します。 inputはその次がメッセージ用のタグなのでうまく動作しています。 selectはspanで括られているのでメッセージ用のタグと階層が違っています。 spanが不要であればなくすか、メッセージ用のタグをspanの中に入れるかしてみてください。 ---- <span class="selectbox"> <select id="age" class="age" name="age"> <option value="">年代を選択する</option> <option value="60代">>60代 </option> </select> <div class="alert">・年代をご選択下さい</div> </span> ----

関連するQ&A

専門家に質問してみよう