• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:チェックボックスとの連動)

チェックボックスとの連動に関する解決方法を教えてください

このQ&Aのポイント
  • 白黒とカラーの項目を連動させる際に、白黒で選択していた場合にカラーに変更した場合、金額が加算されてしまう問題が発生しています。
  • JavaScriptを使用して連動させていますが、現在正しい解決方法を見つけられていません。
  • チェックをはずした時点で選択項目の金額をリセットしたいので、解決策を教えていただきたいです。

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

  • ベストアンサー
回答No.3

function ctrl_check01(check02_checked) { document.getElementsByName("idcheck2")[0].disabled = check02_checked; document.getElementsByName("koumoku2")[0].disabled = check02_checked; document.forms['form1'].elements['koumoku2'].options[0].selected = true; } function ctrl_check03(check04_checked) { document.getElementsByName("idcheck")[0].disabled = check04_checked; document.getElementsByName("koumoku1")[0].disabled = check04_checked; document.forms['form1'].elements['koumoku1'].options[0].selected = true; } りかいりょくないからねぇ~ こんなのでいいかな? でっ。くどいようだがradio。

shimapiyo
質問者

お礼

思い通りの動きです! 説明不足で何度もお手数おかけしましてすいません。 ありがとうございました!!

その他の回答 (2)

回答No.2

function ctrl_check01(check02_checked) { document.getElementsByName("idcheck2")[0].disabled = check02_checked; document.getElementsByName("koumoku2")[0].disabled = check02_checked; document.form1.goukei.value=0; } function ctrl_check03(check04_checked) { document.getElementsByName("idcheck")[0].disabled = check04_checked; document.getElementsByName("koumoku1")[0].disabled = check04_checked; document.form1.goukei.value=0; } くりっくするたび、きんがくを0

shimapiyo
質問者

お礼

すいません。 質問の仕方が悪かったと思います。 教えて欲しかったのは・・・ 白黒のチェックボックスを選ぶ ↓ 隣りのプルダウンメニューから100を選ぶ ↓ やっぱカラーにしたい ↓ 白黒のチェックボックスをはずす ↓ カラーのチェックボックスにチェックを入れる ↓ すると白黒で選択した100がそのまま残る ↓ 新しくカラーで300を選ぶ ↓ すると合計400になる。 ・・・ので 白黒のチェックをはずしたとき選択欄が0のデフォルト状態に戻らせたい。 ・・・てなことができるとうれしいです。 で、一応こんな感じで(下記)直して上記動作をさせたら ・・・NaNになってしまいました。。 ----------------------------- function ctrl_check01(check02_checked) { document.getElementsByName("idcheck2")[0].disabled = check02_checked; document.getElementsByName("koumoku2")[0].disabled = check02_checked; document.form1.koumoku1.value=0; } function ctrl_check03(check04_checked) { document.getElementsByName("idcheck")[0].disabled = check04_checked; document.getElementsByName("koumoku1")[0].disabled = check04_checked; document.form1.koumoku2.value=0; } ----------------------------- 再三質問で申し訳ございませんが なにかヒントあれば、教えて頂けるとうれしいです。 今回も、ご回答ありがとうございました。

回答No.1

どっちかだけえらぶなら、checkboxじゃ~なくてradioかな。 コードをかいてみたものの、だめだしされそう^^; ぜんかくくうはくは、すべてはんかくにでも。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>TEST</title> <body> <form name="form1" method="post" action="#">  <fieldset>   <legend>注文リスト</legend>   <input type="radio" name="color_type" value="モノクロ" id="rd0" onclick="LIST(this.value);CALC()" checked>    <label for="rd0">白黒</label>   <input type="radio" name="color_type" value="カラー" id="rd1" onclick="LIST(this.value);CALC()">    <label for="rd1">カラー</label>   <select name="list" onChange="CALC()">    <optgroup label="モノクロ">     <option value="1800" >--------------A(100)</option>     <option value="2100" >--------------B(200)</option>    </optgroup>    <optgroup label="カラー">     <option value="10500" >--------------C(300)</option>     <option value="11200" >--------------D(400)</option>    </optgroup>   </select>      総枚数 <input type="text" size="10" name="num" value="" onChange="CALC()"> 枚   合計 <input type="text" size="10" name="total" value=""> 円  </fieldset> </form> <script type="text/javascript"> var CALC = function () {  document.forms[ 'form1' ].elements[ 'total' ].value =   document.forms[ 'form1' ].elements[ 'list' ].value *   document.forms[ 'form1' ].elements[ 'num' ].value; }; var SelectGroup = function ( target ) {  var buffer = document.createElement( 'SELECT' );  return function ( v ) {   var obj, cnt;   while( obj = target.firstChild ) buffer.appendChild( obj );      for( cnt = 0; obj = buffer.childNodes[ cnt++ ]; )    if( 'OPTGROUP' === obj.nodeName && obj.label == v ) {     target.appendChild( obj );     break;    }  } }; var LIST = SelectGroup( document.forms[ 'form1' ].elements[ 'list' ] ); LIST('モノクロ'); </script>

shimapiyo
質問者

お礼

確かにこのやり方も有りだと思います。・・・が、すいません。 今回はチェックボックス(ラジオボタンでもいいのですが)の チェックをはずす(か、もう片方を選択する)とプルダウンメニューも初期化される・・・ということができればしたいと思っています。 もしよろしければ再度ヒントなり頂ければ助かります。 ご回答ありがとうございました。

関連するQ&A