- ベストアンサー
プルダウンメニューに連動するチェックボックスのdisable切り換えについて
- プルダウンメニューに連動するチェックボックスを設置した場合、チェックを変更する際に最初にチェックした項目をリセットする方法について教えてください。
- 例えば、一度お米とりんごをチェックした後に再度やり直したい場合、他の項目を選択した場合にお米とりんごのチェックをリセットして全てのチェックを外すことは可能でしょうか?
- ご教授いただけると助かります。
- みんなの回答 (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> 実際には、別途「全チェックをはずす」ボタンなどをつくって それが押された時に作用するような方法が妥当だと思います