- ベストアンサー
当日の日付をプルダウンメニューに反映させたい
HTMLフォームにプルダウンメニューで日付を入力するようにしたい。月と日、通常なら1~12月と1~31日のプルダウンを作れば良いが初期値が1月1日になってしまいます。出来れば当日の日付を初期値にできるようにできないでしょうか?例えば本日なら4月25日が初期値になっている感じです。お願いします。
- みんなの回答 (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>
その他の回答 (2)
- YanYas
- ベストアンサー率34% (26/75)
<Option Value="4/25" SELECTED> 基本的にこれを動的(CGI等)で出力させないといけませんよね。 要望とはあわないかもしれませんが、「今日」のプルダウンメニューをつくって、フォーム受け側で処理するとかも可能かもしれませんね。
お礼
ご意見有難うございます。何とかできそうです。
- Dpop
- ベストアンサー率51% (279/544)
CGIやPHPなどを利用する必要があります。暫定的な方法で良ければJavaScriptで変更する。と言う方法もあります。 今日の日付をプルダウンメニューの初期値にしているページを良く見かけると思いますが、そう言うページは、CGIやPHPなどのプログラムによって作られたページなのです。 HTMLと言うのは、ページを表示する機能しかもって居らずプルダウンメニューの内容を変更する。と言う事はできません。 ただ、かなり暫定的な方法になってしまいますが、JavaScriptでプルダウンメニューの内容を変更する。と言うことも不可能ではありません。 ただ、そのプルダウンメニューがどの様に利用されているのか、によって可能/不可能が分かれますし、リロードする毎にJavaScriptが起動するので、ページがやや重くなってしまう。と言う欠点もあります。 もう少し詳しい情報を示して頂けると、もう少しアドバイスができるかも知れません。
お礼
早速のご意見ありがとうございます。皆様のおかげで解決することができました。
お礼
有難うございます。私の様に初心者には実際にサンプルを書いていただけたので、すごく助かりました。