こちらで初めて質問させていただきます。
JavaScriptが完全初心者で、下記についてご教示いただきたいです。
下記、連動のセレクトボックスなのですが、
二つ目のセレクトボックスで選択した内容によって表示が
切り替えられるようにしたいのですが、今、ソースが足りずうまくいっていません。
どのように書き足せば良いか、教えていただけないでしょうか。
例えば、「キャベツ」を選択すれば、「キャベツを選択しました」と
表示されるようにしたいです。
何卒、どうぞよろしくお願いいたします。
ソースです。
<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>
</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 …
</div>
</form>
<div id="ha1" class="subbox2">キャベツを選択しました</div>
<div id="ha2" class="subbox2">ほうれん草を選択しました</div>
<div id="ha3" class="subbox2">レタスを選択しました</div>
<div id="ne1" class="subbox2">大根を選択しました</div>
<div id="ne2" class="subbox2">にんじんを選択しました</div>
<div id="ne3" class="subbox2">ゴボウを選択しました</div>
<div id="ka1" class="subbox2">キュウリを選択しました</div>
<div id="ka2" class="subbox2">カボチャを選択しました</div>
<div id="ka3" class="subbox2">トマトを選択しました</div>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
var dispSubBox = function(subId) {
[...document.querySelectorAll(".subbox2")].forEach(function(elm){
elm.style.display = elm.id===subId ? "inline": "none"
});
}
dispSubBox();
document.getElementById("cate").addEventListener("change", function(event){
var elm = event.target;
dispSubBox( elm.value );
});
});
</script>
<style>
div { width:300px; display:block; }
</style>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
一応こんな感じで・・・subbox2と3にわけました
<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>
</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>
</div>
</form>
<div id="ha1" class="subbox3">キャベツを選択しました</div>
<div id="ha2" class="subbox3">ほうれん草を選択しました</div>
<div id="ha3" class="subbox3">レタスを選択しました</div>
<div id="ne1" class="subbox3">大根を選択しました</div>
<div id="ne2" class="subbox3">にんじんを選択しました</div>
<div id="ne3" class="subbox3">ゴボウを選択しました</div>
<div id="ka1" class="subbox3">キュウリを選択しました</div>
<div id="ka2" class="subbox3">カボチャを選択しました</div>
<div id="ka3" class="subbox3">トマトを選択しました</div>
<script>
window.addEventListener('DOMContentLoaded', ()=>{
document.querySelectorAll(".subbox2,.subbox3").forEach(x=>{
x.style.display ="none";
});
document.querySelector("#cate").addEventListener('change',e=>{
document.querySelectorAll(".subbox2").forEach(x=>{
x.value="";
x.style.display =x.getAttribute("id")===e.target.value?"inline":"none";
});
document.querySelectorAll(".subbox3").forEach(x=>{
x.style.display ="none";
});
});
document.querySelectorAll(".subbox2").forEach(x=>{
x.addEventListener('change',e=>{
document.querySelectorAll(".subbox3").forEach(y=>{
y.style.display =y.getAttribute("id")===e.target.value?"inline":"none";
});
});
});
});
</script>
<style>
div { width:300px; display:block; }
</style>
ありがとうございます!!!仕事で修正があり、javascriptに詳しくなくて、いろんなサイトを見てもうまくいかず、途方にくれていました。このソースを元に、修正作業をしてみます。本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBScriptでHTMLのセレクトボッ...
-
条件により押せないボタンを作...
-
javascriptでセレクトボックス...
-
プルダウン選択を変更すると、...
-
webページの一部のみの更新につ...
-
<input>の選択肢をプルダウンメ...
-
セレクトボックスを未選択の状...
-
return falseが効かない
-
selectを変更不可にしたい
-
連想配列からセレクトボックス...
-
Selectボックスの一覧表示方法
-
プルダウンの選択内容を次のペ...
-
フレーム内 ( 子HTML ) からフ...
-
ラジオボタンとプルダウンを連...
-
【javascript】連想配列からセ...
-
JavaScriptで<select>の<option...
-
【JavaScript】プルダウンで数...
-
プルダウンの値によって活性・...
-
同一ページに複数のプルダウン...
-
selectのnameが配列の場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全てのselect要素をデフォルト...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
JavaScriptで<select>の<option...
-
プルダウン選択を変更すると、...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンとプルダウンを連...
-
【JS】selectでchangeした時の...
-
VBScriptでHTMLのセレクトボッ...
-
リストボックス内の重複したも...
-
同じ名前のセレクトがある場合...
-
プルダウンの値によって活性・...
-
selectが変更されたらnameを指...
-
【javascript】連想配列からセ...
-
3つのselectでURLパラメータを...
-
複数のプルダウンを1つにまとめ...
-
selectボックスで選択数を制限...
-
セレクトボックスで配列を呼び...
おすすめ情報