- ベストアンサー
JavaScriptでセレクトボックスの"selected"を動的につける方法
- JavaScriptを使用して、セレクトボックスの選択肢に"selected"を動的に付ける方法について質問します。
- 具体的には、年、月、日の選択肢を持つセレクトボックスを作成し、現在の日付に対応する選択肢に"selected"を付ける方法を知りたいです。
- JavaScriptを活用して、セレクトボックスの"selected"属性を制御できる方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じで・・・ <script> window.onload=function(){ var f=document.getElementById("f0"); var ymd=new Date(); checkSelect(f.elements["year"],ymd.getFullYear()); checkSelect(f.elements["month"],ymd.getMonth() +1); checkSelect(f.elements["day"],ymd.getDate()); } function checkSelect(obj,val){ for(var i=0;i<obj.length;i++){ if(obj[i].value==val){ obj[i].selected=true; break; } } } </script> <form id="f0"> <div> <select name='year'> <option value='2009'>2009</option> <option value='2010'>2010</option> <option value='2011'>2011</option> </select>年 <select name='month'> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> </select>月 <select name='day'> <option value='29'>29</option> <option value='30'>30</option> <option value='31'>31</option> </select>日 </div> </form>
その他の回答 (2)
- yamada_g
- ベストアンサー率68% (258/374)
optionのselectedにtrueを設定すれば選択状態になります。 たとえば、 <script type="text/javascript"> window.onload = function() { var today = new Date(); var year = today.getYear(); var month = today.getMonth(); var day = today.getDate(); selectOption(document.フォーム名.year, year); selectOption(document.フォーム名.month, month+1); selectOption(document.フォーム名.day, day); }; function selectOption(obj, value) { for (var i = 0, len = obj.length; i < len; i++) { if (obj[i].value == value) { obj[i].selected = true; return; } } } </script> とか。
お礼
ご回答ありがとうございました。 無事に解決することができました。
- yyr446
- ベストアンサー率65% (870/1330)
<script type="text/javascript"> <!-- window.onload = function(){ var today = new Date(); var year = today.getFullYear(); var month = today.getMonth()+1; var day = today.getDate(); var options=document.getElementsByTagName("option"); for(var i=0;i<options.length;i++){ if(options[i].text==year) options[i].selected="selected"; if(options[i].text==month) options[i].selected="selected"; if(options[i].text==day) options[i].selected="selected"; } } // --> </script>
お礼
ありがとうございました。 無事に解決することができました。
お礼
具体的なソースまでいただいてありがとうございます。 大変参考になりました。