• ベストアンサー

日付選択のポップアップを今日の日付にしたい

宿泊予約フォーム等でよく見かける日付選択のポップアップですが、 大抵今日の日付になっています。 ページを開いたときに日付を取得し、ポップアップに反映させるにはどうすればよいのでしょうか。 そういったページのソースを見て多少いじってみたのですが、どうもよくわかりません。。 カレンダーのある日付をクリックすると、日付フォームにそのまま反映される等できればなお良いのですが、とりあえずJavascriptでできる範囲でやりたいと思っています。 解説しているページ等あれば教えて頂けると助かります。 よろしくお願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ポップアップじゃなくってプルダウンじゃないですか? とりあえずプルダウンの事だと思う事にして・・・・ 前提として、 <FORM NAME=MyForm> <SELECT name=year> 年プルダウン <SELECT name=mon> 月プルダウン <SELECT name=day> 日プルダウン としておきます。 <SCRIPT LANGUAGE='JavaScript'> <!-- da = new Date(); yy = da.getYear(); mm = da.getMonth() + 1; dd = da.getDate(); if (yy < 2000) { yy += 1900; } if (mm < 10) { mm = "0" + mm; } // 1桁の月を2桁に 5 → 05 if (dd < 10) { dd = "0" + dd; } // 1桁の日を2桁に 5 → 05 function Init(){ with(document.MyForm){ // 年を設定する。 for(i=0;i<year.length;i++){ if( year.options[i].value == yy ){ year.options[i].selected = true; break; } } // 月を設定する。 for(i=0;i<mon.length;i++){ if( mon.options[i].value == mm ){ mon.options[i].selected = true; break; } } // 日を設定する。 for(i=0;i<day.length;i++){ if( day.options[i].value == dd ){ day.options[i].selected = true; break; } } } } //--> </SCRIPT> </HEAD> <BODY onLoad=Init()> <FORM NAME=MyForm> <SELECT name=year> <OPTION value=2001>2001 <省略> <OPTION value=2006>2006 </SELECT> <SELECT name=mon> <OPTION value=01>01 <省略> <OPTION value=12>12 </SELECT> <SELECT name=day> <OPTION value=01>01 <省略> <OPTION value=31>31 </SELECT> </FORM> <略> という感じですね。 #あとは月毎の日付と"うるう年"の計算を #どうするかですね( ´∀`) あと、カレンダーから選択した場合の事ですが その後の処理をどうするかによって JavaScriptで足る場合とCGIを使わないと いけない場合があるので、書きませんが JavaScriptのみで日付を変えるだけでいいのなら ヒントとして、 Init()で、 yearはyyと同じものが選択される。 monはmmと同じものが選択される。 dayはddと同じものが選択される。 という事を考えれば、どのようにすればいいか 自ずからわかると思います。 さらにヒントで <A HREF="JavaScript:ChangeDate(2004,09,16);">16</A> という感じにして、ChangeDateに渡って来た 引数と上のヒントを元に考えればわかるかと・・・

rosiro
質問者

お礼

ご丁寧にありがとうございましたm(_ _)m おかげさまでできました。 カレンダー選択のところ、もうすこし頑張ってみます。。

関連するQ&A