• ベストアンサー

ダブルでコンボボックスについて

1つ目のコンボボックスで都道府県を選択できるとします。2つ目のコンボボックスは1つ目で選択した県の市町村が選べるようにしたいんですが、JavaScriptではどのように記述すればよいのでしょうか? めちゃくちゃ人頼みで申し訳ないのですが、急いでいるので教えて下さい(-人-)

質問者が選んだベストアンサー

  • ベストアンサー
  • Shinoa
  • ベストアンサー率92% (12/13)
回答No.2

こんな感じでどうですか? データの設定方法は、一番目に都道府県名、N個の市町村名、最後は"END"の文字列としてます。 後はお好みで改造してください。 少しでも参考になれば幸いです。 <script langage="javaScript"> PREF_NUM=47;  // 都道府県数 PREF=[ ["北海道","苫小牧市","札幌市","室蘭市","END"],     ["青森県","青森市","弘前市","END"],      ~ 略 ~       ["大阪府","大阪市","枚方市","堺市","END"],     ["沖縄県","那覇市","END"]    ];   function setItem(){  clearItem() ;  no = document.myForm.PrefName.selectedIndex ;  cnt = 1 ;  while(1){   if ( PREF[ no ][ cnt ] == "END" ) break ;   document.myForm.CityName.options[ cnt-1 ] = new Option( PREF[ no ][ cnt ], PREF[ no ][ cnt ] ) ;   cnt++ ;   } } function clearItem(){  itemNum = document.myForm.CityName.length  for ( i=0; i<itemNum; i++ ){   document.myForm.CityName.options[ i ] = null ;  } } function setPrefItem(){  for ( cnt=0; cnt<PREF_NUM; cnt++ ){   document.myForm.PrefName.options[ cnt ] = new Option( PREF[ cnt ][ 0 ], PREF[ cnt ][ 0 ] ) ;  }  document.myForm.PrefName.selectedIndex = 0 ; } function initialize(){  setPrefItem() ;  setItem() ; } </script> <body onLoad="initialize()"> <form name="myForm">  <select name="PrefName" onChange="setItem()">   <option value="">  </select>  <select name="CityName">   <option value="">  </select> </form>

sunny65
質問者

お礼

大変参考になりました。 ありがとうございます。 お詳しいのですね。私もこれから勉強していきます。

その他の回答 (1)

回答No.1

こんばんわぁ、Blackwinglsです。 手元にあったscriptが使えそうなので少し弄ってみました。 case文に変更するなりループ回すなりすると結構面白そうですね。 ではでは~☆彡 <HTML> <HEAD> <TITLE>test</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!--- function BYGR() { flag = document.forms[0].elements[0].value if(flag=="BOY") { document.forms[0].elements[1].options[0].text = "男の子用のプレゼント"; document.forms[0].elements[1].options[1].text = "プラモデル"; document.forms[0].elements[1].options[2].text = "スニーカー"; document.forms[0].elements[1].options[3].text = "おもちゃの缶詰(男の子用)"; } if(flag=="GIR") { document.forms[0].elements[1].options[0].text = "女の子用のプレゼント"; document.forms[0].elements[1].options[1].text = "テディベアー"; document.forms[0].elements[1].options[2].text = "ドレス"; document.forms[0].elements[1].options[3].text = "おもちゃの缶詰(女の子用)"; } if(flag=="") { document.forms[0].elements[1].options[0].text = "男の子用・女の子用どちらか選んで下さい"; document.forms[0].elements[1].options[1].text = "-------------------------------------"; document.forms[0].elements[1].options[2].text = "-------------------------------------"; document.forms[0].elements[1].options[3].text = "-------------------------------------"; } } //---> </SCRIPT> </HEAD> <BODY> *後からフォームの内容を変える<P> <HR> 男の子用・女の子用の2通りのプレゼントを用意しました、どちらか選んでください。<BR> <FORM>性別 <SELECT onChange="BYGR()"> <OPTION VALUE=""> <OPTION VALUE="BOY">男 <OPTION VALUE="GIR">女 </SELECT> <P> <SELECT> <OPTION>男の子用・女の子用どちらか選んで下さい <OPTION>------------------------------------- <OPTION>------------------------------------- <OPTION>------------------------------------- </SELECT> </FORM> </BODY> </HTML>

sunny65
質問者

お礼

早速のお返事ありがとうございます。 大変参考になりました。

関連するQ&A

  • ダブルでコンボボックスについての追加質問です

    すいません!!!締め切ってしまったのに、追加で質問させてください。 ・1つ目のコンボボックスは県名 ・2つ目は市町村 1つ目のデフォルトは「指定なし」にしたいのです。そして、この時は2つ目のボックスは「選択できない状態」にして、1つ目でコンボボックスで県を選択すると、2つ目のボックスで市町村が選択できるようにしたいのです。ややこしくてすいません。 よろしくお願いします。

  • Access 住所 コンボボックス

    こんにちは、 Access2003で質問があります。 コンボボックス?が2つあり、 1つ目:都道府県 2つ目:市町村 で 1つ目のコンボボックスを東京都にすると 2つ目に東京都の市町村が抽出されて、そこから該当する市町村を選択できるようにしたいと考えています。 どのようにすればよいのでしょうか? 何かお分かりの方がいましたら教えてください。よろしくお願いします。

  • コンボボックスを使った入力の改善

    コンボボックスを使った入力を全てのデータベースで利用しています。しかし、各コンボボックスがそれぞれ独立「単体動作」しているので、コンボボックスの初段目「最初」はレコード数が少ないのですが、2段目3段目になると選択候補が累積表示されるので、候補の数も多くなり使いづらさを感じるデータベースも増えました。この状況を改善したいと思っていますので、宜しくお願いします。尚、データベースで設定しているコンボボックス全てに言えることでもありますので、以下のケースを紹介させていただきますので、アドバイスをお願いしたいと思います。 [現状でのやり方] コンボボックス参照オブジェクトは以下の構成にて、コンボボックスは独立していて連動していません。なお、参照データの追加作業は別途作成したフォームを、データ入力フォームに配したコマンドボタンで開いて行っています。 [コンボボックス関連オブジェクト(例)] コンボボックス名:都道府県(値集合ソースで都道府県のみ選択) テーブル名:都道府県テーブル フィールド名:ID、都道府県 フォーム名(参照データ追加):都道府県追加フォーム ※「新規追加後の入力フォームへの即反映はアドバイスにより完結済」 コンボボックス名:市町村(値集合ソースで市町村のみ選択) テーブル名:市町村 フィールド名:ID、市町村 フォーム名(参照データ追加):市町村追加フォーム ※「新規追加後の入力フォームへの即反映はアドバイスにより完結済」 [改善させたいこと] コンボボックス「都道府県」で東京都を選択したとき、次のコンボボックス「市町村」では東京都の市町村だけが次の候補として表示させたいと思っています。又、現在は蓄積データの絞り込み検索で設定していますが、選択コンボボックスの次のコンボボックスを自動プルダウンさせ、候補も同時に表示させ入力できればと考えています。 以上ですが、宜しくお願いします。

  • ファイルメーカーでコンボボックスの絞込み

    Accessのデータベースはいくつか作ったことがありますがファイルメーカーは初心者です。 例えば「都道府県」「市町村」というフィールドがある全国地名テーブルがあるとします。 「都道府県」 「市町村」 大阪府     大阪市 大阪府     堺市 大阪府     吹田市 奈良県     奈良市 奈良県     生駒市 ・ ・ 別途「住所」テーブルのコンボボックスの中身をこのテーブルにした場合、 「都道府県」コンボボックスの「大阪府」を選択すると、「市町村」コンボボックスの中身が「大阪市」「堺市」「吹田市」といった大阪府内のみに絞り込むことはファイルメーカーで可能なのでしょうか。 Accessではクエリを使えば出来ますが、いまいちファイルメーカーでのやり方がわかりません。 上手く説明できなくてすみません・・

  • Accsee2003 フォームのコンボボックスの同期について

    Access2003のフォームのコンボボックスで困っています。 フォームのコンボボックスで都道府県を選んだ次のコンボには該当都道府県の市町村を表示させたいのですが、うまくできません。 都道府県テーブルには都道府県のみ、市町村テーブルには市町村のみが入っていまして、都道府県IDでリレーションシップしてあります。 同じような質問がありまして何度かやってみましたが、エラーが出て実現できませんでした。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=233843 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1969695 ご教授いただければ幸いです。よろしくお願いいたします。

  • コンボボックスから一つ選んで他のボックスにリンクさせるには

    JavaScriptを仕事で使っているのですが、初心者なもので困っています。 それは、例えば (1)まず、選択型のコンボボックスからある人の名前を選択する。 (2)選択された名前の人の誕生日が自動的に他のテキストボックスに表示される といった、プログラムの組み方が分かりません。 また、名前と誕生日はあらかじめ登録されており、それらは対で一つのレコードをなしています。 これは、データベースとの連携です。 ぜひ、よろしくお願いします。

  • コンボボックスからコンボへ

    私はホームページを黙過、勉強中のものです。 いま、ホームページ上に上下の所にコンボボックスを設置し、コンボボックスから選択肢を選ぶと下のコンボボックスが上のコンボボックスの選択肢によって選択する値を変える仕組みを作っています。 ほぼ完成しました。ただ一つだけ問題解決できません。それは選択をしてもらい画面が切り替わった時に入力ミスをしてしまった人は前の画面に戻ります。その時に上と下のコンボボックスのうち下のコンボボックスに入れてもらった値が消えてしまう事です。更に下のコンボボックスを選択しようとすると値が全て消えてしまっているので選択できません。もう一度上のコンボに値を入れ直すとまた下のコンボも値をかえすのですが、それでは入力者にだいぶ手間をかけてしまう事になります。 どうか教えて頂けないでしょうか。 この仕組みはすべてジャバで作りました。 お願します。

  • Access コンボボックスの値をクリアしたい。

    毎度、お世話になります。m( )m Access2000で質問します。 フォーム上にコンボボックスが2つあります。 例えば1つ目が都道府県、2つ目が市町村のようなコンボで、1つ目の絞り込みの結果を2つ目のコンボにSQLを使って投げています。(例:1つ目-東京都 2つ目-杉並区)その後、1つ目のコンボを神奈川県に変更したときに 2つ目に入っている「杉並区」を削除して空白の状態に戻したいのですが、どのようにVBAを書けばいいのかわかりません。今のままだと神奈川県杉並区といったありえない登録が発生してしまいます。 1つ目のコンボ変更時の処理で2つ目のコンボの値をクリアする方法を教えてください。 よろしくお願いします。

  • excelのコンボボックスで教えてください。

    地方 **** 関東 中部 関西 都道府県 *********** 関東 東京 関東 埼玉 関東 神奈川 中部 愛知 中部 岐阜 中部 静岡 といったデータがあります。 まず、『地方』をコンボボックス1で選択し、 それに該当する『都道府県』のみコンボボックス2で表示させる。 過去の内容を見たのですが、いまいち理解できなくって。 よろしくお願い致します。

  • vb6のコンボボックスの操作について

    おはようございます。 vb6+MDBの環境下で、コンボボックスについて質問です。 マスタとなるテーブルA(都道府県など)と、一般的(?)なデータを日々貯めていくテーブルBがあり、 Bに、Aのキーとなる値が保存されています。 テーブルデータBの表示・更新画面を作っているのですが、 テーブルAの内容を画面上のコンボボックスに選択項目としてADDして表示するところまでは出来たのですが、以下のことを実現するには、コンボボックスにどういう記述で実現するのかわかりません。 1.テーブルBに持っているAの都道府県コードに該当する項目を、Bのデータ選択時に表示したい。 【テーブルA】 Aのキーコード,都道府県名 【テーブルB】 Bのキーコード,Aのキーコード,住所… このような場合、イベント時にコンボボックスをどのように処理するようにソースを書けば実現できますか?

専門家に質問してみよう