- ベストアンサー
japascriptでセレクトボックス付近にテキス空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで表示されるアラートと同時に入力フォーム付近に、さらにテキストによるエラーメッセージを同時に表示させたい
- japascriptを使用して、入力フォームのボタンをクリックした際に、ブラウザの上部からアラートが表示されるようになっています。しかし、入力フォーム付近に追加のエラーメッセージを表示することができません。
- セレクトボックス付近の赤いテキストメッセージが表示されない問題があります。コードのstayleタグの下と一番下のjavascriptコードに赤いテキストエラーを表示させるコードが書かれています。
- 入力フォームの隣にエラーメッセージを表示するためのコードの修正を試みましたが、問題は解決しませんでした。コードを以下のURLで確認できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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.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> ----