• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プルダウンメニューに連動するチェックボックス)

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

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

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

  • ベストアンサー
  • 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