プロが教える店舗&オフィスのセキュリティ対策術

宿泊予約フォーム等でよく見かける日付選択のポップアップですが、
大抵今日の日付になっています。
ページを開いたときに日付を取得し、ポップアップに反映させるにはどうすればよいのでしょうか。

そういったページのソースを見て多少いじってみたのですが、どうもよくわかりません。。

カレンダーのある日付をクリックすると、日付フォームにそのまま反映される等できればなお良いのですが、とりあえずJavascriptでできる範囲でやりたいと思っています。

解説しているページ等あれば教えて頂けると助かります。
よろしくお願いしますm(_ _)m

A 回答 (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に渡って来た
引数と上のヒントを元に考えればわかるかと・・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/15 17:40

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