プロが教えるわが家の防犯対策術!

以下のようなリストボックスで、今日の日付データから「(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>

A 回答 (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で調べられますけど)
    • good
    • 0
この回答へのお礼

ありがとうございます。valueがないといろいろと面倒なのですね。。。

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

お礼日時:2005/04/07 00:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!