• 締切済み

リストボックスに動的な初期設定値(selected)を与えたい(質問長文)

以下のようなリストボックスで、今日の日付データから「(1年前の)year」と「(今月の)month」の初期設定値を与えようと思うのですが、スマートな方法が思いつきません。 どなたかよい方法を教えてください・・・ <form name="test"> <select name="year"> <option>1997 ・・・(中略) <option>2005</select> 年 <select name="month"> <option value="01">1 ・・・(中略) <option value="12">12</select> 月 </form> <script language="JavaScript"> <!-- function initial(){ 【ここにどのように書くか】 } initial(); //--> </script>

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

こんな感じでいいと思います function initial(){ var today = new Date(); // var year = today.getYear(); var month = today.getMonth(); var yearLen = document.test.year.options.length; document.test.year.options[yearLen-1 -1].selected=true; document.test.month.options[month].selected=true; } //-------------------------------------------- 昨年を求めるのに、optionの最後のデータの手前のデータを選ぶようにしてあります。(つまり、今年が一番最後のデータとしてあることを期待している。) 質問文の様な形式だと、"その年"(実行する時の年)のソースがどうなっているか判らないので、他の方法の方がいいかもしれません。 例えば、現在yearの方にはvalueを付けてありませんけど、valueとかの値でそのリストを探すようにするとか。(valueがなくてもoptions[i].textで調べられますけど)

kokomai
質問者

お礼

ありがとうございます。valueがないといろいろと面倒なのですね。。。 options[i].textに対して選択されているチェックボックスが何番目かを調べる方法については、Webの情報をを元になんとかできました。

関連するQ&A