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

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

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

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

709閲覧

セレクトボックスを連動させたい

saaya0504

総合スコア0

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

1グッド

0クリップ

投稿2021/08/06 02:21

前提・実現したいこと

セレクトボックスを連動させたい。

発生している問題・エラーメッセージ

2つのセレクトボックス同士を連動させたく、1つめのセレクトボックスを選択した場合に2つめを絞り込む動きは実現できたのですが、ページによっては1つめのセレクトボックスがデフォルトで選択された状態になっている場合があり、その場合に該当のエリアで絞られている状態にするにはどうすればいいのか分かりません。

該当のソースコード

HTML

1<select name="sel_pref" class="sel_pref"> 2 <option value='' selected>(都道府県選択)</option> 3 <option value='0001'>北海道</option> 4 <option value='0002'>青森県</option> 5</select> 6<select name="sel_area" class="sel_area"> 7 <option value='' selected>(エリア選択)</option> 8 <option value='' data-val='0001'>北海道全て</option> 9 <option value='' data-val='0001'>札幌</option> 10 <option value='' data-val='0002'>青森</option> 11</select>

jQuery

1 var $sel_area = $('.sel_area'); 2 var original = $sel_area.html(); 3 4 $('.sel_pref').change(function() { 5 var val1 = $(this).val(); 6 $sel_area.html(original).find('option').each(function() { 7 var val2 = $(this).data('val'); 8 if (val1 != val2) { 9 $(this).not(':first-child').remove(); 10 } 11 }); 12 if ($(this).val() == "") { 13 $sel_area.attr('disabled', 'disabled'); 14 } else { 15 $sel_area.removeAttr('disabled'); 16 } 17 });

jQueryが初心者で説明下手で申し訳ありません。お知恵を拝借できると幸いです。

mamemaru👍を押しています

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

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

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

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

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

guest

回答1

0

ページによっては1つめのセレクトボックスがデフォルトで選択された状態になっている場合があり、その場合に該当のエリアで絞られている状態にするにはどうすればいいのか分かりません。

まず、質問者様の現在のコードについて見てみます。

jquery

1 $('.sel_pref').change(function() { 2 //処理 3 });

このように.changeのイベントで書かれているため、都道府県選択のセレクトボックスに何か変更があった場合のみにしか発火しません。
そこで以下のイベントを用います。

jquery

1window.onload = function(){ 2 // ページ読み込み時に実行したい処理 3}

ここで、セレクトボックスがデフォルトで選択された状態の時の処理を書けばよいかと思います。

投稿2021/08/06 02:40

編集2021/08/06 02:43
mamemaru

総合スコア56

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

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

saaya0504

2021/08/06 11:54

ご回答いただきありがとうございます!試してみます。 大変助かりました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問