テキストボックスとセレクトボックスの選択肢の連携

このQ&Aのポイント
  • 1個のテキストボックスに入力された文字列により、その後の1個のセレクトメニューの選択肢を変更することってできるのでしょうか?
  • 具体的には、デフォルトではテキストボックスに文字列が入力された場合は「トマト、きゅうり、ほうれんそう」などの選択肢が表示されます。
  • また、テキストボックスに特定の文字列が入力された場合には、別の選択肢が表示されるようにしたいと考えています。例えば、「あいうえお」と入力された場合には「りんご、みかん、ぶどう」などの選択肢が表示されます。このような条件に基づいて表示を切り替えるためには、JavaScriptを使用する必要があります。
回答を見る
  • ベストアンサー

テキストボックスとセレクトボックスの選択肢の連携

この度はお世話になります。 1個のテキストボックスに入力された文字列により、その後の1個の セレクトメニューの選択肢を変更することってできるのでしょうか? 具体的には以下のような動作です。 ・デフォルトではテキストボックスに文字列が入力された場合は、  その後のセレクトボックスには「トマト、きゅうり、ほうれんそう」  の選択肢が入る。 ・テキストボックスに「あいうえお」と入力された時のみ、その後の  セレクトボックスが「りんご、みかん、ぶどう」の選択肢に変わる。 ・テキストボックスに「かきくけこ」と入力された時のみ、その後の  セレクトボックスに「あじ、さば、かつお」の選択肢に変わる。 こんな感じですが、よろしくお願い致します。 当方、只今javascriptを勉強しており、条件式に苦戦しております。 サンプルプログラムを見せていただけるとありがたく思います。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>1個のテキストボックスに入力された文字列により、その後の1個の >セレクトメニューの選択肢を変更することってできるのでしょうか? HTML構造とか条件がいまいちはっきりしませんが、できると思われます。 >当方、只今javascriptを勉強しており、条件式に苦戦しております。 とのことなので、苦戦なさっている条件分岐について、とりあえず思いつくものを… と言っても、ご質問の内容であれば普通に条件分岐すればよいだけですが・・・ テキストボックスの値が、変数textValeに取得できているとして、 ◇例1(ifによる分岐)  if(textValue=""){   // 文字列が入力されていない場合の処理   }else if(textValue="あいうえお"){   // あいうえおの場合の処理  }else if(textValue="かきくけこ"){   // かきくけこの場合の処理  }else{   // 他の文字列の場合の処理  } ◇例2(switch文で振分け)  switch (textValue{  case "":   // 文字列が入力されていない場合の処理   break;  case "あいうえお":   // あいうえおの場合の処理   break;  case "かきくけこ":   // かきくけこの場合の処理   break;  default:   // 他の文字列の場合の処理   break;  } ◇例3(ループで処理:場合分けが多いけれど処理が類似している時など) caseData = [ { value:"あいうえお", data:"hoge1" }, { value:"かきくけこ", data:"hoge2" } ]; for(var i=0; i<caseData.length; i++){ if(textValue == caseData[i].value){   hogehoge(caseData[i].data); // 該当する場合の処理(引数は個別データ)   break; } } if(i==caseData.length) hogehoge("hoge0"); // どれにも該当しない場合の処理 ※例3は分岐の選択肢が多くて、処理内容が類似して一般化できる際に有効かと思います。  ご質問の場合も「セレクトボックスの内容を変える」という処理が同じなので、応用は可能かと。

hage_1000
質問者

お礼

ご回答ありがとうございます。 わかりにくい表現になってしまいました。動作条件を少しわかりやすく整理して 掲載しましたので、よろしくお願いいたします。

hage_1000
質問者

補足

ネットを検索していたら、似たようなサンプルプログラムが公開されておりました。 http://www.openspc2.org/reibun/javascript/form_selectmenu/031/index.html これは、セレクトメニュー1を選んだら、セレクトメニュー1の選択項目に関連する セレクトメニューがもうひとつ表示されると言うものです。 こちらでやろうとしていることは、セレクトメニュー1ではなく、 テキストボックスに「あいうえお」と入力したら、「りんご、みかん、ぶどう」の セレクトメニューが表示され、 テキストボックスに「かきくけこ」と入力したら、「あじ、さば、かつお」の セレクトメニューが表示され、 テキストボックスに、上記以外の文字を入力したら、「トマト、きゅうり、ほうれんそう」の セレクトメニューは表示され、 テキストボックスの未入力状態の時は、セレクトメニューは表示しない。 と言う条件のものでした。 なにしろ言葉では書けても、肝心な「条件式」がうまく書けなくて困っております。 サンプルプログラムがあれば、ひとつずつバラしながら検証できるのですが。。。 よろしくお願いいたします。

その他の回答 (3)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

ANo2,3です。 あいや~。見るたびに、タイポだらけだ・・・ (^_^;) 例1の条件式の等号は == または === でないとダメですね。 重ね重ね、申し訳ないです。 m(__)m

hage_1000
質問者

お礼

たびたびお手数お掛けします。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

ANo2です。 タイポがありました。m(__)m 例2の switch (textValue{ ⇒ switch (textValue){ で、閉じ括弧が抜けてましたね。 >なにしろ言葉では書けても、肝心な「条件式」がうまく >書けなくて困っております。 >サンプルプログラムがあれば、ひとつずつバラしながら >検証できるのですが サンプルのつもりなんですけど・・・ (^_^;)

hage_1000
質問者

お礼

ありがとうございます。if~else 文で何とかできないか検討しています。 理由は単に「他がわからないから」です。 あ~情けない。。。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

そのページには一つしか該当するテキストとセレクトボックスはないのか それとも複数あってすべて同じ仕様にしたいのかによってだいぶ処理がちがいます。 またセレクトボックスを変更する際、optionのテキスト部分は指示の通り 変更するとして、valueはどうするのでしょうか?

hage_1000
質問者

お礼

ありがとうございます。 「テキストボックスに何も入力されていない場合」と言う 動作が最初の質問時に抜けていました。すみません。

hage_1000
質問者

補足

ご回答ありがとうございます。 > そのページには一つしか該当するテキストとセレクトボックスはないのか? テキスト入力部分1箇所に対して、そのテキスト入力に対応した選択肢が 変わるセレクト入力部分は1箇所です。 > またセレクトボックスを変更する際、optionのテキスト部分は指示の通り > 変更するとして、valueはどうするのでしょうか? テキスト入力部分に何も入力されていな時は、セレクト入力部分自体が 非表示になっていて、テキスト入力部分に文字列が入ると <option value="トマト”>トマト</option> <option value="きゅうり">きゅうり</option> <option value="ほうれんそう">ほうれんそう</option> が表示され、 更に、テキスト入力部分に「あいうえお」と入力された時のみ、セレクト入力 部分の選択肢が <option value="りんご”>りんご</option>、 <option value="みかん">みかん</option> <option value="ぶどう">ぶどう</option> や、テキスト入力部分に「かきくけこ」と入力された時のみ、セレクト入力 部分の選択肢が <option value="あじ”>あじ</option>、 <option value="さば">さば</option> <option value="かつお">かつお</option> となるようにしたいのですが。。。よろしくお願い致します。

関連するQ&A

  • セレクトメニューで選んだ値をテキストボックスへ

    4個のセレクトメニューで選択した値(文字列)を、自動で1個のテキストボックス(INPUT)に連結して入力する方法はありますか? 例えば SelectMenuAで、「あい」を選択。       SelectMenuBで、「うえ」を選択。       SelectMenuCで、「おか」を選択。       SelectMenuDで、「きく」を選択。 その後に配置してあるテキストボックスに「あいうえおかきく」が表示される かたちです。 当方javascriptを勉強中の身で、サンプルプログラムをお見せいただけ ればと思います。 テキストボックスの値の連結ならできるのですが、セレクトメニューの選択値で 同じことをすることに手こずってます。

  • テクストボックスからセレクトボックスへ

    1.テキストボックスにテキストを入力 2.追加ボタンを押す 3.セレクトボックスに表示 4.セレクトボックスに追加した項目を選択し削除ボタンで削除できる 以下のようなプログラムを教えていただけますでしょうか?

  • セレクトメニューと複数のテキストボックス連携

    お世話になります。セレクトメニュー1個と複数(2個)の テキストボックスに連携についてお尋ねします。 セレクトメニュー1個の選択肢が「aaa」「bbb」「ccc」とあり、 「aaa」を選んだら、その value がテキストボックス1に「111」が入り、それと同時にテキストボックス2に「アルファベットの1番目」と入り、 「bbb」を選んだら、その value がテキストボックス1に「222」が入り、それと同時にテキストボックス2に「アルファベットの2番目」と入り、 「ccc」を選んだら、その value がテキストボックス1に「333」が入り、それと同時にテキストボックス2に「アルファベットの3番目」と入る、 ようにしたいのですが、どのような記述にしたらよろしいのでしょうか? よろしくお願い致します。

  • VB6のWebBrowserコントロールのテキストボックスについて

    VB6でWebBrowserコントロールを使用してテキストボックスを表示しており。テキストボックス内の入力文字列がSelect(反転表示され選択されている状態)されている場合に、Select状態を解除する方法を知りたいのですが、よろしくお願いいたします。

  • テキストボックスにフォーカスを当てる?

    こんばんは,すみませんよろしくお願いします。 テキストボックスにフォーカスを当てるには,例えば, TextBox1.SetFocus のようにするんだと思うのですが,テキストボックスに初期値が設定されていたときには,上記のようにすると,初期値のテキストの右側に線のようなポインタがテキストコントロール内にでてきます。 しかし,このような状態では,いったん初期値を消さないと,別の値に書き換えることは出来ません。 テキストコントロール内に初期の値として,何らかのテキストが入力されているとき,文字列が選択された状態になっていれば,即,別の値を入力することが出来ますので,ユーザーフォームをshowしたときに,テキストボックス内の初期値 (例えば,「ここに名前を入力してください」などの文字列) を選択した状態にしたいのです。どのようにすれば良いのでしょうか?何度もすみません。

  • Wordでテキストボックスの選択ができません!

    Word2007を使用しています。 ちなみにUSBメモリーに保存して2003で使用しても同じでした。 「挿入」→「テキストボックス」でテキストボックスを挿入しました。 特殊な記号を1文字、図として使用したかったのです。 一文字分だったのでテキストボックスの面積を極力小さくし、「書式設定」で線の色をなくし、「文字列の折り返し」で、背面へ移動しました。 そしたらそのテキストボックスにカーソルをもっていっても、選択できなくなってしまったんです。 移動させることは勿論、削除する事も出来ない‥。 うまく選択できる方法ってありませんか??

  • VBAコンボボックスのリスト選択について

    現在、ユーザーフォームを作成していますがコンボボックスでのリスト選択について質問します。 【質問内容】 コンボボックスを3つ作成し、Select Caseでそれぞれのリストを連動させるプログラムを組んでいます。 (1)3つとも選択した後で例えばリスト1を変更しようとするとエラーになってしまいます。リスト以外の文字列も入力できるようにしているつもりですがなぜでしょうか? (2)選択後、シートセルに転送した後、テキストボックスならば「.Text = ""」で一旦空白になりますが、コンボボックスの場合どうしたらよいのでしょうか? シートセルに転送後も選択した内容が残ってしまい結局(1)の事象に基づきエラーになってしまい連続入力ができません。 初歩的な質問で恐縮ですが、よろしくお願いいたします。

  • 表をテキストボックスに入れたい

    Word2007で表を作りました。 最下段の行が2ページ目に行くためテキストボックスに 表を入れ1ページにおさめたいと思います。 出来上がった表をテキストボックスに入れる方法を教えて下さい。 文字列をテキストボックスに入れるときは、文字列を選択して 挿入 → テキストグループ → テキストボックス → 横書きテキ ストボックスの描画で自動的にテキストボックスに入りますが 表は、文字列と同じようにできないのでしょうか

  • セレクトボックスとテキストボックスの連動について

    セレクトボックスで質問事項を選ぶと、テキストボックスの中に選択した名称が表示される。ということをやりたく下記の様に設定しました。 <script> function hoge(obj){ var f=obj.form; var v=obj.options[obj.selectedIndex].value; var c=f.elements["comment"]; c.value+=v; obj.selectedIndex=0; } </script> <select name="質問事項1" onchange="hoge(this)"> <option value="selected">質問事項を選んでください</option> <option value=“質問1">質問1</option> <option value="質問2">質問2</option> <option value="質問3">質問3</option> </select> <textarea name="comment"></textarea> 現在発生している問題が1点あります。 セレクトボックスで質問を2回選ぶと、選んだ2つの結果がテキストボックス内に連続して表示されます。 例: 1回目 セレクトボックス内 「質問1」を選択 ↓ テキストボックス内 「質問1」が表示 2回目 セレクトボックス内 「質問2」を選択 ↓ テキストボックス内 「質問1質問2」と表示 2回目以降選んだ場合に前回の処理をクリアにして、1つのみ表示させたいと思うのですがどうやればいいのでしょうか。 よろしくお願いします。

  • 全てのテキストボックスを選択するには

    エクセルのあるシートに、オートシェイプの図形とテキストボックスの文字が無数に描画してあります。このような状態で、テキストボックスのみを全てセレクト状態にするマクロが知りたいのですが。

専門家に質問してみよう