- ベストアンサー
チェックボックスとの連動に関する解決方法を教えてください
- 白黒とカラーの項目を連動させる際に、白黒で選択していた場合にカラーに変更した場合、金額が加算されてしまう問題が発生しています。
- JavaScriptを使用して連動させていますが、現在正しい解決方法を見つけられていません。
- チェックをはずした時点で選択項目の金額をリセットしたいので、解決策を教えていただきたいです。
- みんなの回答 (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。
その他の回答 (2)
- babu_baboo
- ベストアンサー率51% (268/525)
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
お礼
すいません。 質問の仕方が悪かったと思います。 教えて欲しかったのは・・・ 白黒のチェックボックスを選ぶ ↓ 隣りのプルダウンメニューから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; } ----------------------------- 再三質問で申し訳ございませんが なにかヒントあれば、教えて頂けるとうれしいです。 今回も、ご回答ありがとうございました。
- babu_baboo
- ベストアンサー率51% (268/525)
どっちかだけえらぶなら、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>
お礼
確かにこのやり方も有りだと思います。・・・が、すいません。 今回はチェックボックス(ラジオボタンでもいいのですが)の チェックをはずす(か、もう片方を選択する)とプルダウンメニューも初期化される・・・ということができればしたいと思っています。 もしよろしければ再度ヒントなり頂ければ助かります。 ご回答ありがとうございました。
お礼
思い通りの動きです! 説明不足で何度もお手数おかけしましてすいません。 ありがとうございました!!