• ベストアンサー

セレクトメニュー項目によって、表示内容を変えたい。

セレクトメニューの内容によって、チェックボックスの表示をさせたいのですが、 Javascriptを使って設定できるか教えて下さい。 例えば、セレクトメニューリストが、「選択して下さい」「犬」「ネコ」「鳥」「トラ」とあって、 「犬」を選んだ時に、「オスのみ」「メスのみ」のチェックボックスを表示させるにはどうすればいいでしょうか? (それ以外のリストを選んだ場合は表示させなくしたいのです。) 宜しくお願いします。

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

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

チェックボックスのstyleを display:none に切り替えたら表示されなくなるよ。

ameosan
質問者

お礼

ありがとうございます。 ちょっとづつ分かってきました☆

その他の回答 (3)

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

#2です。 絶対選ばないといけないわけではない・・・ということですね。 その場合並列のラジオボタンで、「選択しない」という項目を作っておくとか セレクトボックスでやるというのもありかも。 ま、どうしてもチェックボックスがよいというのであれば、こんな感じで やってもいいかなぁ・・・ <script> function change(obj){ var f=obj.form; for(var i=0;i<f.sex.length;i++){ f.sex[i].disabled=(obj.value!="dog"); } } function check(obj){ var objs=obj.form.elements[obj.name]; for(var i=0; i<objs.length;i++){ if(objs[i]!=obj) objs[i].checked=false; } } </script> <form> <select name="animal" onchange="change(this)"> <option value="">選択して下さい <option value="dog">犬 <option value="cat">ネコ <option value="bird">鳥 <option value="tiger">トラ </select> <input type="checkbox" name="sex" id="male" value="male" disabled onClick="check(this)"><label for="male">オスのみ</lable> <input type="checkbox" name="sex" id="female" value="female" disabled onClick="check(this)"><label for="female">メスのみ</lable> <input type="submit" value="go"> </form>

ameosan
質問者

お礼

いけました!! ありがとうございます!!

  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

>ラジオボタンだと一度押してしまうと解除できなくなるので、 >チェックボックスがいいのですが、 >ラジオボタンでもチェックをクリアにする設定方法はありますでしょうか? 発想の転換で、「選択しない」の項目を追加するのも一つの方法です。 ユーザフレンドリーで作るならばラジオボックスの方が親切だと思いますよ。

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

いくつか問題点が・・・。 表示させないだけなら手はありますが、非表示にしただけだとsubmitするときには データが送られちゃったりするので、この手のものはdisabledで処理する 方がよいでしょう。(もしくは表示をけしつつdisabledを使用する) それとチェックボックスで「オスのみ」と「メスのみ」は内容的に選択が競合します。 できればラジオボタンでやった方がベターです。 <script> function change(obj){ var f=obj.form; for(var i=0;i<f.sex.length;i++){ f.sex[i].disabled=(obj.value!="dog"); } } </script> <form> <select name="animal" onchange="change(this)"> <option value="">選択して下さい <option value="dog">犬 <option value="cat">ネコ <option value="bird">鳥 <option value="tiger">トラ </select> <input type="radio" name="sex" id="male" value="male" disabled><label for="male">オスのみ</lable> <input type="radio" name="sex" id="female" value="female" disabled><label for="female">メスのみ</lable> <input type="submit" value="go"> </form>

ameosan
質問者

お礼

ありがとうございました。 早速試してみます。

ameosan
質問者

補足

質問なのですが、チェックボックスにする場合は、 <script>部分をどこか変更すればいいでしょうか? ラジオボタンだと一度押してしまうと解除できなくなるので、 チェックボックスがいいのですが、 ラジオボタンでもチェックをクリアにする設定方法はありますでしょうか? 宜しくお願い致します。

関連するQ&A

  • ボタンで選択されていないセレクトメニューの非反映

    現在JavaScriptを使った、HP上での簡単な見積もりページを製作しています。 チェックボックスやラジオボタン、セレクトメニューで選ばれた項目を足して、最終的にテキストボックスに合計金額を出したいと思っています。 内容は全く違いますが、画像のような感じで項目などを作りたいと思っております。 その時に、ラジオボタンでチェックされていないセレクトメニューは選択(計算に反映)されないようにしたいのです。 (「プラスチック丸型編み込み」等が選択されている時は、「蓋付きのボックス」や「蓋付きバスケット」のセレクトメニューは選択されないようにしたいのです。) 自分の作ったものでは、「色を選択」の時点では0に設定してあるのですが、「蓋付きのボックス」のセレクトメニューが他のものを選択していた場合、それが反映されてしまうのです。 計算させるだけならできるのですが、選択されないようにする方法がわからなくて困っております。 拙い文章で申し訳ないのですが、どなたか教えてくださらないでしょうか?

  • リストメニューの選択内容によって、チェックボックスを表示させたい

    リストメニューの選択内容によって、チェックボックスを表示させたいと思っております。 仕様は以下のようにしようと思っております。 リストメニューの内容 ・伊藤先生(全教科担当) ・佐々木先生(2教科担当) ・小松先生 仮に上記リストメニューで、佐々木先生が選択された場合、 □国語  □社会  がチェックボックスで現れます。 仮に上記リストメニューで、伊藤先生が選択された場合、 □国語  □算数  □理科  □社会  がチェックボックスとして現れます。 上記の仕様は、フォームによってできますでしょうか。 よろしくお願いいたします。

  • セレクトボックスの内容をリストで出したい

    セレクトボックスをクリックしたりすると セレクトボックスの内容が ぱっと下方へ延びてリスト表示されますが、 あの状態をjavascriptで実現したいのです。 どう指定したらよいでしょうか。 FORCUS関数では、フォーカスが移るだけだし。。 ご存知でしたら、教えて下さい。 よろしくお願いします。

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

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

  • ふたつのセレクトメニューの項目を外部ファイルから読み込ませて連動させたい。

    はじめまして。質問させてください。 セレクトメニューを選択するときに たとえば、左のセレクトメニューに巨人を選択すると右の セレクトメニューには巨人の選手を選択する項目になり、 左のセレクトメニューから阪神と選ぶと、右のセレクトメニューの項目が阪神の選手の項目になるように左のセレクトメニューのと右のセレクトメニューを連動させたいです。 また、そのときのセレクトメニューの項目を外部ファイルから読み込ませたいのですが、(javascriptを知らない人でも項目を変更できるように) たとえば、ここのサイトのようにhttp://www.kyoto-su.ac.jp/~ushitaki/JavaScriptExample/introselect2.html 左のメニューの項目を選んだら、右の項目は左の項目にそった選択肢になるという形にしたいのです。 この場合どのようなやり方がありますでしょうか。ご教授のほどよろしくお願いいたします。 また、似たようなセレクトメニューがあるURLをご存知の方がいたら教えてください。よろしくお願いいたします。

  • セレクトボックスの内容を連動

    2つのセレクトボックスの内容を連動させて表示を変えたいと思っているんですが、これってJavascriptですか? 一つ目の内容の選択に応じて変更したいです。

  • セレクトメニューで選択された項目に応じて、別のセレクトメニューの内容を変更する場合について

    アドバイスお願いします。 ページロード時、最初ののセレクトメニューは「国を選択してください」が選択された状態となりますが、次のセレクトメニューが空白になってしまいます。 これを最初のメニューと同じく「国を選択してください」と表示させるには、どうしたらよろしいでしょうか? 【HTML】 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>JavaScript</title> <link rel="stylesheet" type="text/css" href="main.css" media="all"> <script type="text/javascript" src="main.js"></script> </head> <body> <form action="./enq.cgi" method="get" id="mainForm" name="mainForm"> <select id="selMain"> <option value="">国を選択してください</option> <option value="jp">日本</option> <option value="usa">アメリカ</option> </select> <select id="selSub">国を選択してください</select> </form> </body> </html> 【main.js】 window.onload = function(){ document.getElementById("selMain").onchange = function(){ var selNo = this.selectedIndex; var selObj = document.getElementById("selSub"); var optionData = [[ ],[ { text:"東京", value:"tokyo"}, { text:"大阪", value:"osaka"}, { text:"名古屋", value:"nagoya"} ],[ { text:"ニューヨーク", value:"ny"}, { text:"ロサンゼルス", value:"la"} ] ]; while(selObj.hasChildNodes()) { selObj.removeChild(selObj.firstChild); } for (var i=0; i<optionData[selNo].length; i++){ selObj.options[i] = new Option(optionData[selNo][i].text, optionData[selNo][i].value); } } } また、質問にありますようなセレクトメニューを実装する場合、JavaScriptとAJAX、どちらが適したものと言えるのでしょうか?

  • リストボックスの内容に対して吹き出しを表示

    Javascriptを使って吹き出しを表示する方法を教えてください。 リンクや画像には title= または alt=で 吹き出しを表示出来ることまでは分かっているのですが、リストボックス(select)のメニュー一つ一つに対して吹き出しを表示する方法がわかりません。selectにはtitle属性を指定できないらしく困りはてています。 どなたかご教授頂けないでしょうか。 よろしくお願いします。

  • 同じセレクトメニューが1画面に複数ある場合

    同じ内容のセレクトメニュー(選択肢が50個くらい)を、同一画面上に何個も(10個以上)設定する場合ですが、ひとつひとつ書いていたのでは表示に時間がかかってものすごく重くなってしまいます。 どうせ同じ内容のセレクトメニューなので、ひとつ書いてそれを流用させることはできないものでしょうか? Javascriptを使ってもかまいません。

    • ベストアンサー
    • HTML
  • Javascriptでセレクトメニューの選択チェックの方法

    Javascriptでセレクトメニューのフォームをチェックしたいのですが、 リストメニューの「選択して下さい」を選んだままだと、「番号を選択して下さい。」とエラーを出したいのですが、下記の様に書いてみたのですが、うまく動きません…どのように書けばいいか教えて下さい。宜しくお願いします。 <script language=\"JavaScript\"> <!-- function Check() { var str = document.form.a.value; if(document.form.a.value == "0") { alert("番号を選択して下さい"); } //--> </script> <form id="form" name="form" method="post" action="##"> <select name="a" onblur="Check();"> <option value="0">選択して下さい</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" name="Submit" value="登録" onClick="Check();"> </form>

専門家に質問してみよう