- ベストアンサー
JavaScriptでセレクトボックスを2段階選択する方法
- JavaScriptを使用して、セレクトボックスを2段階選択する方法についてご教示いただけますか?現在のコードでは、1段階目のセレクトボックスを選択しないと2段階目のボックスが表示されません。
- また、2段階目のボックスの初期表示として、デフォルトのテキスト(最上段のもの)を表示させたいです。どのように実現すればよいでしょうか?
- 質問者さんが作成したコードには、年と月を選択する3つのセレクトボックスがあります。1段階目の年を選択すると、2段階目の月が表示され、さらに月を選択すると結果が表示されます。現在の問題は、初めから2段階目のボックスを表示し、デフォルトのテキストを表示することです。解決策を教えていただけませんか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
現在の仕様は、 >現状では1段階のセレクトボックスを選択しないと2段階目のボックスが出て来ません。 仕様変更は、 これを最初から2段階目のボックスを表示して、出力するテキストもデフォルトのもの(最上段のもの)を最初から出力したいのです。 ということは、次の要件を満たせばよいことになります。 ・1段階目のセレクトボックスを選択 ・2段階目のセレクトボックスを選択 ・最上段のテキスト(2023-1月)も最初から出力 現在のコードの下部に 次のコードを記述して お試しになってみてください。 <script> window.addEventListener('DOMContentLoaded', ()=>{ // 追加 2023-04-21 11:05 //---------------------------------------------------------- const cate = document.getElementById("cate"); const ha = document.getElementById("ha"); const subbox3 = document.querySelectorAll(".subbox3"); ha.style.display =""; cate.options[1].selected = true; ha.options[1].selected = true; let v = cate.options[1].text+"-"+ ha.options[1].text; [...subbox3].forEach(function(elem){ if (elem.textContent==v){elem.style.display="block"} }); //---------------------------------------------------------- });
お礼
早速ありがとうございます!流石です!!非常に助かりました。 jsはなかなかとっつきにくくて自分だけではうまくいかないので。 またここで質問することではないのかもしれませんが、このコードを同一ページで複数設置するとうまく動かないようです。こちらは何か対策方法ありますでしょうか?