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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

Q&A

解決済

1回答

621閲覧

2つのselectボックスを連動させ1つ目の選択肢によって2つ目の選択肢が自動的に切り替わるようにしたいのですが上手く動いてくれません。

koume

総合スコア458

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2019/07/06 03:04

1つ目のselectボックスは都道府県の選択ボックスです。
2つ目のselectボックスは市区町村の選択ボックスです。
やりたいことは、都道府県が選択されたときに、その選択内容に応じた市区町村の選択内容が表示されるようにしたいのです。
表示はできていて都道府県は選択出来る状態です。

一応、コードを記述しましたが、都道府県を選択しても、2つ目の選択ボックスがなにも反応してくれないのです。 コードは以下になります。

HTML <div id="banner-message"> <!-- <p>Hello World</p> --> <!-- <button>Change color</button> --> <select class="parent"> <option value="" selected="selected" label="-- 選択 --">-- 選択--</option> <option value="北海道">北海道</option> <option value="青森">青森</option> <option value="岩手">岩手</option> </select> <select class="child" disabled> <option value="" label="-- 選択2 --" selected="selected" data-val="default">-- 選択2 --</option> <option value="01" data-val="北海道">札幌市</option> <option value="02" data-val="北海道">釧路市</option> <option value="03" data-val="青森">青森市</option> <option value="04" data-val="岩手">盛岡市</option> </select> </div>
javascript var $children = $('.parent'); //都道府県の要素を変数に入れます。 var options = $('.child').find("option"); $('.parent').change(function() { //市セレクトの初期化 $.each(options,function(index,value){ $(value).removeAttr("selected"); if($(value).data("val") == "default"){ $(value).attr("selected","selected"); } $(value).show(); }); //選択された地方のvalueを取得し変数に入れる var val1 = $(this).val(); //市選択肢カウンタ var option_count = 0; //市選択肢が1つだったとき用の保存変数 var option_select = ""; //市選択肢の表示切り替え $.each(options,function(index,value){ var city_option = $(value); if(city_option.data("val") == "default"){ //初期値選択肢用(-- 選択2 --) city_option.attr("selected","selected"); }else if(city_option.data("val") == val1){ //選択された県に当てはまる場合はカウントを増やし、option_selectに格納 option_count++; option_select = city_option; }else{ //選択された県にあてはまらない場合は、隠す city_option.hide(); } }); //市の選択肢が1つしかない場合は、自動的に選択された状態に変更 if(option_count == 1){ option_select.attr("selected","selected"); } //市セレクトを選択可能に $('.child').prop("disabled", false); });

原因が特定出来ないのと、対応がわからず手が出ない状態ですのでどなたかご教授お願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

サンプルで載せられていたHTMLとコードで動作確認してみましたが正しく動いているようです。
多分、他の場所(例えば、jQueryの読み込みに失敗している等)の問題ではないでしょうか。

投稿2019/07/06 03:18

45_Shingo

総合スコア177

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

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

koume

2019/07/06 05:40

回答有難うございます。45_Shingoさんの言う通り、jQueryの読み込みに失敗していたようでした。 Railsでアプリを作成していますが、 $ bundle exec assets:precompileを実行したらサンプルコードは上手く動いてくれました。 膨大な量ですが、おかげさまで全国の市区町村の入力に移行できます。 今後とも宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問