プルダウンメニューに連動するチェックボックスのdisable切り換えについて

このQ&Aのポイント
  • プルダウンメニューに連動するチェックボックスを設置した場合、チェックを変更する際に最初にチェックした項目をリセットする方法について教えてください。
  • 例えば、一度お米とりんごをチェックした後に再度やり直したい場合、他の項目を選択した場合にお米とりんごのチェックをリセットして全てのチェックを外すことは可能でしょうか?
  • ご教授いただけると助かります。
回答を見る
  • ベストアンサー

プルダウンメニューに連動するチェックボックス

はじめまして。 よろしくお願いいたいます。 以前、こちらに質問として挙がっておりましたプルダウンメニューに連動するチェックボックスのdisable切り換えにつきまして。 http://okwave.jp/qa/q2928590.html 上記のアドレスの内容で設置した場合に、チェクを変更するときに最初にチェックしたものをリセットすることは可能でしょうか? 例えば 一度 食べも お米とりんごをチェック後に再度やり直したいとして、 二度目に 食べ物以外を選択した場合(生き物など)に上記のお米とリンゴのチェックをリセットして、全てのチェックを外したいのですがそんな便利なことが可能でしょうか? 可能でしたらどなたかご教授頂けると助かります。 何卒よろしくお願いいたします。

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

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

セレクトボックスで別の項目を選ぶたびにチェックをはずされるというのは ユーザービリティがかなり悪いとおもいます。 やるならこんな感じ <script language="javascript"> function changeFunc(obj){ var v=obj.value; var f=obj.form; var food={ "grain":["rice","soba"] ,"fruit":["apple","orange"] ,"meat":["pork","fish"] ,"hot":["rice","soba","pork","fish"] ,"cold":["apple","orange"] ,"red":["apple","pork"] }; for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox"){ f[i].checked=false; if(v=="") f[i].disabled=false; else f[i].disabled=true; } } if(typeof food[v] =="undefined") return false; for(var j in food[v]){ for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox"){ if(f[i].id==food[v][j] ) f[i].disabled=false; } } } } function uncheck(f){ } </script> <form> <select name="genre" onChange="changeFunc(this)"> <option value="">食べ物</option> <option value="meat">生き物</option> <option value="fruit">果物</option> <option value="grain">穀物</option> <option value="hot">温かい</option> <option value="cold">冷たい</option> <option value="red">赤い</option> </select><br> <input type="checkbox" value="お米" id="rice">お米<br> <input type="checkbox" value="りんご" id="apple">りんご<br> <input type="checkbox" value="みかん" id="orange">みかん<br> <input type="checkbox" value="さかな" id="fish">さかな<br> <input type="checkbox" value="豚肉" id="pork">豚肉<br> <input type="checkbox" value="そば" id="soba">そば<br> </form> 実際には、別途「全チェックをはずす」ボタンなどをつくって それが押された時に作用するような方法が妥当だと思います

関連するQ&A

  • プルダウンメニューに連動するチェックボックスのdisable切り換え

    こんにちわ。 表記の件ですが、プルダウンメニューに連動するチェックボックスのdisableを切り換えたいと思っているのですが、なかなか上手くいきません・・・。 例えばプルダウンメニューにおいて ・食べ物 ・生き物 ・果物 ・穀物 というようなメニューがあり、さらにチェックボックスとして ・お米 ・りんご ・さかな ・みかん というチェックボックスがあるとします。 この場合、[食べ物]を選択すると全てが選択できるようになり、[果物]を選択すると[りんご]と[みかん]以外は無効(チェックボックスの選択ができない状態)となるスクリプトを作成したいということです。 もし、先行していずれかのチェックボックスが有効になっていて、プルダウンメニューを切り換えた場合はアラートと同時にチェックボックスをリセットするようできると尚素敵です。 皆様のお知恵を拝借できればと思います。 何卒お力添えいただければ幸いです。

  • プルダウンとチェックボックスの連動

    はじめましてよろしくおねがいします。 やりたいことはプルダウンのメニューの中身を活性したり非活性に したいのですが、どのようにやるのか想像がつきません。 以下にソースを貼り付けました。 チェックボックスにチェックされた場合はメニューの中身の■Yahoo!をリンクさせない様にしたいです。 チェックが外れたときはメニューの中身はすべてリンクで表示します。 現状はすべてリンクしかできていないです。 チェックボックスとの連動の方法、メニューの中の非活性の方法を教えてください。よろしくおねがいします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown() { if(flag) ID.style.visibility = "hidden"; else ID.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <A href="javaScript:pullDown()">メニューを表示する</A><BR> <DIV id="ID" style="position:absolute;visibility:hidden;"> <A href="http://www.yahoo.co.jp/">■Yahoo!</A><BR> <A href="http://auctions.yahoo.co.jp/">■Yahoo! Auctions</A><BR> </DIV> <BR><BR><BR><BR><BR><BR> <FORM> <INPUT TYPE ="checkbox">ここにチェックを入れるとプルダウンの■Yahoo!のみ非活性にしたい。 </FORM> </BODY> </HTML>

  • ラジオボタンとプルダウンを連動させたい

    ラジオボタンとプルダウンを連動させたい いつもお世話になっております。 ラジオボタンのvalue値に連動してプルダウンの内容が変わるということがしたいと思い、 数日前からいろいろと格闘していましたが、煮詰まったため相談に伺いました。 http://okwave.jp/qa/q2928590.htmlのANo.2の回答 -------------------------------------------------------------------- <script language="javascript"> function changeFunc(obj){ var v=obj.value; var f=obj.form; for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox"){ if(f[i].className==v || v=="") f[i].disabled=false; else f[i].disabled=true; } } } </script> <form> <select name="genre" onChange="changeFunc(this)"> <option value="">食べ物</option> <option value="grain">穀物</option> <option value="fruit">果物</option> <option value="meat">生き物</option> </select> <br /> <input type="checkbox" value="お米" class="grain">お米<br /> <input type="checkbox" value="そば" class="grain">そば<br /> <input type="checkbox" value="りんご" class="fruit">りんご<br /> <input type="checkbox" value="みかん" class="fruit">みかん<br /> <input type="checkbox" value="さかな" class="meat">さかな<br /> <input type="checkbox" value="豚肉" class="meat">豚肉 </form> -------------------------------------------------------------------- を参考にいろいろと試してはみたのですが、こちらは「プルダウン→チェックボックス」で、 まったく逆でどうしたら良いのかまったくわかりませんでした。 他のウェブサイトの情報やサンプルも試したのですが、value値やname値他の問題でうまくできませんでした。 希望の仕様は ・ラジオボタンの選択肢によって、プルダウン(セレクトボックス)の内容が変わる(アイテムが消える、または選択できなくなる)。 ・ラジオボタン・プルダウン共にvalue値・name値は決まったものがある(プルダウンのvalue値は日本語) 以上です。 javascriptは素人ですので、わかりにくい質問になっているかもしれないのですが、お力を貸していただけましたら助かります。 よろしくお願いします。

  • プルダウンで選択した2つの値を

    例えば、プルダウンを2つ作り、2つから、晴れ、りんごと選択しいいねと表示させるプログラムを作成したいです。 この場合は、プルダウンは連動する必要がありません。 以下のプログラムを参考に作っているのですが、いかんせんうんともすんともいきません。 https://developer.mozilla.org/ja/docs/Learn/Java …。 どうしたらいいのでしょうか。能力がないものは泣き寝入りしかないのでしょうか。

  • チェックに応じて違うチェックボックスをアクティブにしたい

    次のHTMLのように、大分類、小分類のような構成のチェックボックス グループがあります(初期設定は全部チェック無しです) 普段は[a][b][c][d]をdisableとしておき、(1) にチェックが入った 場合に[d]以外([a][b][c])アクティブ(?とにかくチェックを入れる ことができる)ようにするにはどうしたらいいでしょうか。 よろしくお願い致します。 <form id="Form1"> : <INPUT TYPE="CHECKBOX" NAME="food" value="果物">(1) 果物 <INPUT TYPE="CHECKBOX" NAME="food" value="野菜">(2) 野菜 <INPUT TYPE="CHECKBOX" NAME="food" value="肉魚">(3) 肉魚 <br> <INPUT TYPE="CHECKBOX" NAME="fruit" value="りんご">[a] りんご <INPUT TYPE="CHECKBOX" NAME="fruit" value="みかん">[b] みかん <INPUT TYPE="CHECKBOX" NAME="fruit" value="ぶどう">[c] ぶどう <INPUT TYPE="CHECKBOX" NAME="fruit" value="バナナ">[d] バナナ : </form>

  • チェックボックスとの連動

    白黒とカラーの項目を連動させています。例えば白黒のチェックをはずしてカラーにチェックを入れるとすでに白黒で選択してた場合、金額が合計に加算されてしまいます。チェックをはずした時点で選択項目の金額をリセットさせたいのですが解決方法が見つかりません。Javascript勉強中で正直よくわかっていません。下記スクリプトもあっちこっち調べながら組み合わせたものです。解決策をいただけると助かります。よろしくお願い致します。 <script language="javascript"> <!-- n_table1 = new Array(0,100,200); n_table2 = new Array(0,300,400); function keisan(obj) { var outStr=""; var total=0; total = total + n_table1[document.form1.koumoku1.selectedIndex] * document.form1.kazu1.value; total = total + n_table2[document.form1.koumoku2.selectedIndex] * document.form1.kazu1.value; outStr = total; document.form1.goukei.value=eval(outStr); } function ctrl_check01(check02_checked) { document.getElementsByName("idcheck2")[0].disabled = check02_checked; document.getElementsByName("koumoku2")[0].disabled = check02_checked; } function ctrl_check03(check04_checked) { document.getElementsByName("idcheck")[0].disabled = check04_checked; document.getElementsByName("koumoku1")[0].disabled = check04_checked; } // --> </script> <form name="form1" METHOD="POST"> <table cellspacing="0" cellpadding="8" border="1" bordercolor="#666"> <tr> <td>白黒</td> <td><input type=checkbox name="idcheck" id="idcheck" onClick="ctrl_check01(this.checked);"> 白黒 <select name="koumoku1"> <option>選択 <option>--------------A(100) <option>--------------B(200) </select> </tr> <tr> <td>カラー</td> <td><input type=checkbox name="idcheck2" id="idcheck2" onClick="ctrl_check03(this.checked);"> カラー <select name="koumoku2"> <option>選択 <option>--------------A(300) <option>--------------B(400) </select></td> </tr> <tr> <td colspan="2"></td> </tr> <tr> <td>総枚数</td> <td><input type="text" name="kazu1" size="8" maxlength="12" value="0"> 枚</td> </tr> <tr> <td colspan="2"></td> </tr> <tr> <td>合計</td> <td><input type="text" name="goukei" size="8" maxlength="12" value="0"> 円</td> </tr> </table> <input type="button" value="計算する" onClick="keisan(this.form)"> </form>

  • プルダウンメニューに連動するチェックボックス(2)

    こんにちわ。 先日下記の質問をさせていただき、yambejp様よりお答えを頂いきました。 直ぐに旨く行き大変助かりました。 http://okwave.jp/qa/q8844785.html ただ、もう一つ可能でしたら最初にある全選択可能な食べ物をなくして、 いきなり制限付きの生き物から始められるようにすることは出来るのでしょうか? 食べ物のような大枠を無くして、生き物、果物、穀物のような小枠のみで構成できたらと考えております。 可能でしたらどなたかご教授頂けると助かります。 何卒よろしくお願いいたします。

  • VBAのチェックボックスについて

    □りんご (TextBox)個 □みかん (TextBox)個 □いちご (TextBox)個     : □ぶどう (TextBox)個 というのをUserFormのマルチページに配置しているのですが、 例えば、上記で「りんご」と「みかん」にチェックを入れて、各TextBoxに「5」と入力したら、エクセルシート(sheet("B5"))に『りんご-5個,みかん-5個』と表示させたいと思っています。(チェックの個数は制限なし) 今考えているのが、If文で各CheckBoxがTrueか判定していく方法です。 しかし、これでは考えられる組み合わせの数だけIf文ができてしまい、かなり長いプログラム(判定ばかり)になってしまいます。。 例えば、はじめに各CheckBoxでTrueか判定して、Trueの場合のみフラグを立てて、フラグが1のCheckBoxのLabelとTextBoxを表示できるようにしたいと思うのですが、どのようにしたらよいのでしょうか。 他に効率のよいプログラムがあれば教えて下さい。

  • 一つのチェックボックスでテキストフィールドとプルダウンリストを制御

    現在以下のようなテキストフィールドとプルダウンがあります。 <form name="register" action="register_kakunin.php" method="post"> <input type="checkbox" name="name_check" onclick="fchk(this,1);" /> <input name="revenue" onChange="keisan()" type="text" id="revenue" size="6" readOnly="true"/> <input type="checkbox" name="chk" onclick="fchk2(this)" /> <select name="paymethod" disabled="disabled"> <option value="">Pay Method</option> <option value="cash">cash</option> <option value="card">card</option> <option value="point">point</option> <option value="coupon">coupon</option> </select> </form> これを function fchk(obj, name_check){ var frm=document.register; if(!obj.checked){ /* チェックされたら、テキストボックスを有効化 */ frm.revenue.readOnly=true; }else{ /* チェックが外されたら、テキストボックスを無効化 */ frm.revenue.readOnly=false; } } function fchk2(obj) { var frm=obj.form; var len=frm.elements.length; /* フォームの要素数 */ if(obj.checked==true){ /* チェックボックスが選択されている場合、   プルダウンを有効化(disabled=false) */ frm.elements["paymethod"].disabled=false; }else{ /* チェックボックスが選択されていない場合、   プルダウンを無効化(disabled=true) */ frm.elements["paymethod"].disabled=true; } } という2つのスクリプトで制御しているのですが、前者を操作するときには必ず後者も操作することになるため、一つのチェックボックスで2つとも制御できるようにしたいのですが、どうしたらいいのでしょうか? 上記のjavascriptはネットから拾ってきたもので、自作ではありません。 宜しくお願いします。

  • リストの連動の応用

    エクセル2013を使っています。 次のホームページにあるようなリストの連動(大分類を選択によって小分類の選択肢を変更する)は理解しています。http://www.geocities.jp/chiquilin_site/data/100930_screening2.html 質問したいことは、「大分類の選択肢によっては(プルダウンメニューから選ぶまでもなく)、別の セルに決まった文字を表示させる方法があるのかどうか、またあるのであればどのようにすれば よいのか」ということです。 具体的にどういうことかというと、 上記のホームページ中で、例えば分類で「肉」を選んだ場合には品名にはプルダウンメニューから 選ぶまでもなく牛肉が表示され、分類で「野菜」や「果物」を選んだ場合には プルダウンメニューから品名が選べるようにしたいです。 分類によって、品名がただ一つに決まってしまうものまでわざわざプルダウンメニューから その一つを選択する手間を省きたいという事です。 回答のほどよろしくおねがいします