dポイントプレゼントキャンペーン実施中!

HTMLフォームにプルダウンメニューで日付を入力するようにしたい。月と日、通常なら1~12月と1~31日のプルダウンを作れば良いが初期値が1月1日になってしまいます。出来れば当日の日付を初期値にできるようにできないでしょうか?例えば本日なら4月25日が初期値になっている感じです。お願いします。

A 回答 (3件)

JavaScriptとか使えば出来ますね。


暇つぶしに作ってみました。

<HTML>
<BODY onLoad="toDay(document.date)">
<SCRIPT LANGUAGE=JavaScript>
<!--
function weekDay(y,m,d)
{// 曜日を求めます。
if ( m < 3 ){
y -- ;
m += 12 ;
}
return (y+Math.floor(y/4)-Math.floor(y/100)+Math.floor(y/400)+Math.floor((m*13+8)/5)+d)%7 ;
}
function maxDay(y,m)
{// 最大日数を求めます。
s = weekDay(y,m,1);
if ( m == 12 ){
y ++ ;
m = 1 ;
} else {
m ++ ;
}
e = weekDay(y,m,1);
if ( e >= s ){
return 28+e-s ;
} else {
return 35+e-s ;
}
}
function changeDay(f)
{// 日付を更新します。
var y = eval(f.year.value);
var m = eval(f.month.selectedIndex+1);
var d = eval(f.day.selectedIndex+1);
var maxd = maxDay(y,m);
if ( d > maxd ){
d = maxd ;
f.day.selectedIndex = d-1 ;
}
f.day.options.length = maxd ;
var i ;
for (i=28 ;i<maxd ;i++){
f.day.options[i].text = i+1 ;
}
f.week.selectedIndex = weekDay(y,m,d);
return false ;
}
function toDay(f)
{// 今日の日付に設定します。
dt = new Date();
f.year.value = y = dt.getFullYear();
f.month.selectedIndex = m = dt.getMonth();
f.day.selectedIndex = d = dt.getDate()-1;
changeDay(f);
}
// -->
</SCRIPT>
<FORM NAME=date>
西暦
<INPUT NAME=year SIZE=4 onChange="changeDay(this.form)">

<SELECT NAME=month onChange="changeDay(this.form)">
<OPTION>1<OPTION>2<OPTION>3<OPTION>4<OPTION>5
<OPTION>6<OPTION>7<OPTION>8<OPTION>9<OPTION>10<OPTION>11<OPTION>12</SELECT>

<SELECT NAME=day onChange="changeDay(this.form)">
<OPTION>1<OPTION>2<OPTION>3<OPTION>4<OPTION>5
<OPTION>6<OPTION>7<OPTION>8<OPTION>9<OPTION>10
<OPTION>11<OPTION>12<OPTION>13<OPTION>14<OPTION>15<OPTION>16<OPTION>17<OPTION>18<OPTION>19<OPTION>20
<OPTION>21<OPTION>22<OPTION>23<OPTION>24<OPTION>25<OPTION>26<OPTION>27<OPTION>28<OPTION>29<OPTION>30
<OPTION>31
</SELECT>

<SELECT NAME=week disabled>
<OPTION>日曜日<OPTION>月曜日<OPTION>火曜日<OPTION>水曜日<OPTION>木曜日<OPTION>金曜日<OPTION>土曜日</SELECT>
</FORM>
</BODY>
</HTML>
    • good
    • 0
この回答へのお礼

有難うございます。私の様に初心者には実際にサンプルを書いていただけたので、すごく助かりました。

お礼日時:2004/04/25 04:29

<Option Value="4/25" SELECTED>



基本的にこれを動的(CGI等)で出力させないといけませんよね。

要望とはあわないかもしれませんが、「今日」のプルダウンメニューをつくって、フォーム受け側で処理するとかも可能かもしれませんね。
    • good
    • 0
この回答へのお礼

ご意見有難うございます。何とかできそうです。

お礼日時:2004/04/25 04:31

CGIやPHPなどを利用する必要があります。

暫定的な方法で良ければJavaScriptで変更する。と言う方法もあります。

今日の日付をプルダウンメニューの初期値にしているページを良く見かけると思いますが、そう言うページは、CGIやPHPなどのプログラムによって作られたページなのです。

HTMLと言うのは、ページを表示する機能しかもって居らずプルダウンメニューの内容を変更する。と言う事はできません。

ただ、かなり暫定的な方法になってしまいますが、JavaScriptでプルダウンメニューの内容を変更する。と言うことも不可能ではありません。
ただ、そのプルダウンメニューがどの様に利用されているのか、によって可能/不可能が分かれますし、リロードする毎にJavaScriptが起動するので、ページがやや重くなってしまう。と言う欠点もあります。

もう少し詳しい情報を示して頂けると、もう少しアドバイスができるかも知れません。
    • good
    • 0
この回答へのお礼

早速のご意見ありがとうございます。皆様のおかげで解決することができました。

お礼日時:2004/04/25 04:34

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