【jQuery】1つのセレクトボックスの選択値に応じて、他のセレクトボックスの内容を切り替える機能を実装

今回は例として、こんな2つのセレクトボックスを作成しました。

①「地方選択」セレクトボックスと「都道府県選択」セレクトボックスがある
②「地方選択」セレクトボックスで任意の地方を選択すると、
選択した地方に対応した都道府県が「都道府県選択」セレクトボックスに設定される

↓こんな感じです。

↓実装コードはこちら。
  
    <script>
    // 各地域ごとの都道府県の配列を設定
    var hokkaido = {1:'北海道'};
    var tohoku = {2:'青森県', 3:'岩手県', 4:'宮城県', 5:'秋田県', 6:'山形県', 7:'福島県'};
    var kanto = {8:'茨城県', 9:'栃木県', 10:'群馬県', 11:'埼玉県', 12:'千葉県', 13:'東京都', 14:'神奈川県'};
    var chubu = {15:'新潟県', 16:'富山県', 17:'石川県', 18:'福井県', 19:'山梨県', 20:'長野県', 21:'岐阜県', 22:'静岡県', 23:'愛知県'};
    var kinki = {24:'三重県', 25:'滋賀県', 26:'京都府', 27:'大阪府', 28:'兵庫県', 29:'奈良県', 30:'和歌山県'};
    var chugoku = {31:'鳥取県', 32:'島根県', 33:'岡山県', 34:'広島県', 35:'山口県'};
    var shikoku = {36:'徳島県', 37:'香川県', 38:'愛媛県', 39:'高知県'};
    var kyushu = {40:'福岡県', 41:'佐賀県', 42:'長崎県', 43:'熊本県', 44:'大分県', 45:'宮崎県', 46:'鹿児島県', 47:'沖縄県'};
    // 各地域を配列にまとめる
    var areaArray = [hokkaido, tohoku, kanto, chubu, kinki, chugoku, shikoku, kyushu];

    $(function() {
      // 地域選択用セレクトボックスが切り替わったら発動
      $('#areaSelect').change(function() {
        // 一旦、都道府県選択用セレクトボックスのoptionを消去
        $('#pref > option').remove();
        // 地域選択用セレクトボックスの値を取得
        var val = $(this).val();
        // 選択したvalue値を変数に格納
        var selectedArea = areaArray[val];
        // 選択した地域の都道府県をセレクトボックスのoptionに追加
        $.each(selectedArea, function(index, value){
          $('#pref').append($('<option>').html(value).val(index));
        })
      });
    });
    </script>

  <select class="areaSelect" id="areaSelect">
    <option>地域を選択してください</option>
    <option value="0">北海道</option>
    <option value="1">東北</option>
    <option value="2">関東</option>
    <option value="3">中部</option>
    <option value="4">近畿</option>
    <option value="5">中国</option>
    <option value="6">四国</option>
    <option value="7">九州</option>
  </select>

  <select class="pref" id="pref">
  </select>
  
↓同様の実装をされている方がいました。
こんな方法もあるようです。

技術ブログ

baserCMSのプラグインを作成しました。ブログ記事編集画面の、カテゴリ・アイキャッチ項目の表示・非表示を選択できるプラグインです。

2021-12-18

baserCMS利用者向けに、プラグインを作成・マーケットに出品しました。ブログ記事編集画面の、カテゴリ・アイキャッチ項目の表示・非表示を選...

【jQuery】1つのセレクトボックスの選択値に応じて、他のセレクトボックスの内容を切り替える機能を実装

2021-02-28

フォームを実装する機会があり、「地方選択」セレクトボックスにて選択した内容に応じて、「都道府県選択」セレクトボックスの選択肢を変更する必要が...

CakePHP4で、フォロー機能のアソシエーションを実装してみた(Ruby on Railsの記事を参考に)

2021-01-31

CakePHP4にて、フォロー機能を実装しようとしたのですが、なかなかうまくいきませんでした。困っていたものの、Ruby on Railsに...

「シカクパーク〜みんなの資格体験記〜」をリリースしました!

2021-01-11

資格の受検体験記投稿サイト「シカクパーク〜みんなの資格体験記〜」をリリースしました!これから頑張って育てていきますので、ご愛顧よろしくお願い...

PHP7技術者認定[初級]試験を受けました

2020-08-30

勉強の過程で初めて知ったPHP7の知識を中心にまとめていきます...

Twitter