こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

リストボックスに動的な初期設定値(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>

投稿日時 - 2005-04-06 02:07:59

QNo.1314224

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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で調べられますけど)

投稿日時 - 2005-04-06 03:04:28

お礼

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

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

投稿日時 - 2005-04-07 00:31:00

あなたにオススメの質問