質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

8660閲覧

JSで 2つのプルダウンを連動させたい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/10/15 07:52

前提・実現したいこと

二つのプルダウンを連動させるページを作りたいと思っています。

**プルダウン1 **

やさい
くだもの

**プルダウン2 **

キャベツ
レタス
りんご
みかん

デフォルト状態だとプルダウン2は全て表示、プルダウン1を選択すると絞り込まれる処理をしたいです。

onchange時に配列を作るような処理になるかと思いますが、具体的にどのようなFunctionになるでしょうか?

データ自体はコントローラから持ってきています。onchange時にsubmitすれば簡単に実現できるのですが、そうではなくJS側だけで完結したいと思っております。

宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/10/15 07:55

ご自身で書かれたコードを質問文に追記いただいたほうが回答を得られやすいと思います。
guest

回答3

0

ベストアンサー

html

1<select name="category"> 2<option value="やさい">やさい</option> 3<option value="くだもの">くだもの</option> 4</select> 5<select name="detail"></select>

javascript

1var item = { 2 'やさい':['キャベツ','レタス'], 3 'くだもの':['りんご','みかん'] 4} 5var setDetail = function(category){ 6 $('[name=detail]').empty(); 7 $.map(item[category], function(val){ 8 $('[name=detail]').append($('<option>', { value: val, text: val })) 9 }); 10} 11// 初期化 12setDetail('やさい'); 13 14$('[name=category]').change(function() { 15 var category = $('[name=category]').val(); 16 setDetail(category); 17});

投稿2016/10/16 23:49

KazukiSawamura

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

プルダウン1を変化させるごとにajaxでプルダウン2を
持ってくるとデータ保持の無駄が省けます
もちろん少量な場合はすべてをhtmlで保持してもいいですが

投稿2016/10/16 15:53

yambejp

総合スコア114837

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

プルダウン2のoption要素にやさい・くだものに対応するclassを設定し、onChange でいったん全ての option を display: none; にしてから絞り込み対象のclassのみ display: block; で再表示する、が楽かと思います。

投稿2016/10/15 07:59

timy

総合スコア168

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問