- ベストアンサー
selectで選択したら他のinputを無効にする
- selectで選択したら他のinputを無効にする方法について
- 例えば、指定なしを選んだ場合に下のinputを無効にする方法を紹介します
- disabled属性を使用することで、他のinputを無効にすることができます
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ざっとみてみました このサイトを参考にin_arrayを組み込んでみると楽です http://akinov.hatenablog.com/entry/2013/08/23/000908 jQueryとの競合がなければ動くと思います。調整してみてください。 (window.onload処理あたりがちょっと怪しいかも) <script> Array.prototype.in_array = function(val) { for(var i = 0, l = this.length; i < l; i++) { if(this[i] == val) { return true; } } return false; } window.onload=function(){ set_disable(); } function set_disable(){ var d=document.getElementById("delivery"); var v=d.options[d.selectedIndex].value; var f=d.form; var delivery_list=["レターパック350","レターパック500","定形外郵便","はこboon"]; var name_list=["delivery_time","delivery_Month","delivery_Day","namekisai"]; for(var i=0;i<f.length;i++){ if(name_list.in_array(f[i].name)){ f[i].disabled=delivery_list.in_array(v); } } } </script> <form> <label for="delivery">配送方法</label> <select name="delivery" id="delivery" onchange="set_disable()"> <option value="クロネコヤマト元払" selected>クロネコヤマト元払</option> <option value="クロネコヤマト着払">クロネコヤマト着払</option> <option value="ゆうぱっく元払">ゆうぱっく元払</option> <option value="ゆうぱっく着払">ゆうぱっく着払</option> <option value="レターパック350">レターパック350</option> <option value="レターパック500">レターパック500</option> <option value="定形外郵便">定形外郵便</option> <option value="はこboon">はこboon</option> </select> <br> <label for="delivery_time">配送希望時間</label> <select name="delivery_time" id="delivery_time"> <option value="指定なし" selected>指定なし</option> <option value="午前中">午前中</option> <option value="12-14">12時~14時</option> <option value="14-16">14時~16時</option> <option value="16-18">16時~18時</option> <option value="18-20">18時~20時</option> <option value="20-21">20時~21時</option> </select> <br> <label for="delivery_Month">配送希望日</label> <select name="delivery_Month" id="delivery_Month"> <option value="指定なし" selected>指定なし</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <!--略--> </select>月 <select name="delivery_Day"> <option value="指定なし" selected>指定なし</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <!--略--> </select>日 <br> 伝票に商品名の記載は <input type="radio" name="namekisai" value="OK" id="a1" checked><label for="a1">OK</label> <input type="radio" name="namekisai" value="NG" id="a2"><label for="a2">NG</label> ※「NG」の場合は「雑貨」と記載します </form>
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
だいたいこんな感じ <script> window.onload=function(){ setNamekisai(); } function setNamekisai(){ var hogehoge=document.getElementById("hogehoge"); var v=hogehoge.options[hogehoge.selectedIndex].value; var f=hogehoge.form; for(var i=0;i<f.length;i++){ if(f[i].name=="namekisai") f[i].disabled=(v=="指定なし"); } } </script> <form> <select name="hogehoge" id="hogehoge" onchange="setNamekisai()"> <option value="指定なし" selected>指定なし</option> <option value="午前中">午前中</option> <option value="12-14">12時~14時</option> <option value="14-16">14時~16時</option> <option value="16-18">16時~18時</option> <option value="18-20">18時~20時</option> <option value="20-21">20時~21時</option> </select> <input type="radio" name="namekisai" value="OK" id="a1" checked><label for="a1">OK</label> <input type="radio" name="namekisai" value="NG" id="a2"><label for="a2">NG</label> </form>
お礼
回答有難うございました! 非常に助かります! 勝手なお願いですが、よろしければこのサイトhttp://www.geocities.jp/kadenkoujiya1242/moucikomi.htm (実験サイトです) で配送方法の ・レターパック350 ・レターパック500 ・定形外郵便 ・はこboon を指定した時 ・配送希望時間 ・配送希望日(月and日) を無効にするにはどうすればよろしいでしょうか 頼ってばかりですがお願いします。
お礼
yambejp様 回答有難うございました。お陰でできました。 それにしてもhtmlとcssは分かるのですがjavascriptはあんまりできない自分が情けないです。 本当に助かりました。有難うございました!