質問させていただきます。
連動のプルダウンで、2つめのプルダンで選択した値を引き継ぎ、
表示が切り替わるようにしたいのですが、
どのようにソースをかけば良いかご教示いただけませんでしょうか。
ソースを書かせていただきます。
<form> <div class="pulldownset vegetable"> <select id="cate" class="subbox" > <option value="">種類を選択</option> <option value="ha">葉菜類</option> <option value="ne">根菜類</option> <option value="ka">果菜類</option> </select> <select id="ha" class="subbox2"> <option value="">葉菜類を選択</option> <option value="ha1">キャベツ</option> <option value="ha2">ほうれん草</option> <option value="ha3">レタス</option> <option value="ha4">セロリ</option> </select> <select id="ne" class="subbox2"> <option value="">根菜類を選択</option> <option value="ne1">大根</option> <option value="ne2">にんじん</option> <option value="ne3">ゴボウ</option> </select> <select id="ka" class="subbox2"> <option value="">果菜類を選択</option> <option value="ka1">キュウリ</option> <option value="ka2">カボチャ</option> <option value="ka3">トマト</option> </select> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script> </div> </form> <!--<div id="ha1">キャベツを選択しました</div> <div id="ha2">ほうれん草を選択しました</div> <div id="ha3">レタスを選択しました</div> <div id="ne1">大根を選択しました</div> <div id="ne2">ニンジンを選択しました</div> <div id="ne3">ゴボウを選択しました</div> <div id="ka1">キュウリを選択しました</div> <div id="ka2">カボチャを選択しました</div> <div id="ka3">トマトを選択しました</div>--> <script type="text/javascript"> // HTMLの読み込み直後に実行: document.addEventListener('DOMContentLoaded', function() { // DOMContentLoaded内 // 2. 表示/非表示を一気に更新する(表示条件は、引数と一致する id のサブBOX) var dispSubBox = function(subId) { [...document.querySelectorAll(".subbox2")].forEach(function(elm){ elm.style.display = elm.id===subId ? "inline": "none" }); } dispSubBox(); // 一致する id がないので全て 非表示になる。 // 1. select.subbox の操作で値が変わると発火するイベント document.getElementById("cate").addEventListener("cange", function(event){ var elm = event.target; // select#id になる。 //console.log( elm.id ); // "cate" //console.log( elm.value ); // サブBOXに与えた id と同じ dispSubBox( elm.value ); // 全更新:一致idだけ表示 }); }); </script>
例えば、「キャベツ」と選んだら、option valueの「ha1」がdivのidになり
プルダウンで選択する内容によって切り替わるようにしたいです。
プルダウンが1つの時はできたのですが、2つになった時にうまくいかず、
教えていただけますと幸いです。
何卒、どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー