JavaScriptで現在の日付をリストボックスに設定するには?

[上に] [前に] [次に]
るみ 1999/07/14(水) 12:30:45
過去のラウンジログを参考にさせていただいて、
こういうものをつくりましたが、

<FORM method=post action="day.cgi" name="form2">
<SELECT NAME="toyear">
    <OPTION VALUE="1999">99
    <OPTION VALUE="2000">00
    <OPTION VALUE="2001">01
</SELECT>

<SELECT NAME="tomon">
    <OPTION VALUE="1">1
    <OPTION VALUE="2">2
(途中省略)
    <OPTION VALUE="11">11
    <OPTION VALUE="12">12
</SELECT>

<SELECT NAME="today">
    <OPTION VALUE="1">1
(途中省略)
    <OPTION VALUE="31">31
</SELECT>
日まで
</FORM>

<SCRIPT LANGUAGE="JavaScript">
<!--
    dd = new Date();
    year = dd.getYear();
    year = (year > 100) ? year : year + 1900;
    mon = dd.getMonth() + 1;
    date = dd.getDate();
    document.form2.toyear.selectedIndex = year;
    document.form2.tomon.selectedIndex = mon;
    document.form2.today.selectedIndex = date;
// -->
</SCRIPT>


月と日はちゃんと表示されるのに、
年だけが表示されません。
どこかおかしい所があったらご指摘ください。
宜しくお願いします。
ちなみに(途中省略)しているのは月と日だけで、
年のソースはこのままです。
OSは WindowsNT Server4.0、
ブラウザはIE4.0、NN3.03、NN4.04で確かめましたが
どれも結果は同じでした。

無責任官庁 1999/07/14(水) 12:48:01
ちょっとした勘違いのようですね。
selectIndex は、“何番目の要素か”です。
月と日は1から始まってるから問題ないですが、
年は違いますよね?
<OPTION>を1から2000行ぐらい書いたら意味的には合いますけど、
まあ、これをちょっとの修正で直す場合は・・・

--これより上のソースは省略--
year = dd.getYear();
year = (year > 100) ? year: year + 1900;
mon = dd.getMonth() + 1;
date = dd.getDate();
year = year - 1998; //これを追加
document.form2.toyear.selectedIndex = year;
--以下省略--

ってな具合でしょうか。

るみ 1999/07/14(水) 12:50:52
[[解決]]
無責任官庁さん、ばっちり解決しましたよ!
本当にありがとうございました!(^O^)

[上に] [前に] [次に]