初心者です。説明が不充分で、理解できないような文章ですみません。
個人的なホームページを作成しています。
フォームを使ってアンケートを送信できるものを作っていますが、
そこで問題点にぶつかってしまいましたので、お力をお借りしたいです。

プルダウン表示で自動的に現在日付を規定値に表示したいのですが、
どのようにすればいいのでしょうか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

JavaScriptは勉強始めたばっかりなので、ちょっと醜くなっていますが、


極力元ソースに合わせて書いてみました。
書籍や、インターネットなどで、なぜこう動くのかを調べながら勉強してください。でないと、修正が効かなくなってしまいますので。
---
<HTML>
<HEAD>

<SCRIPT language="JavaScript">
function hanbai() {;
window.open("hyouji.htm", "MenuWindow", "width=500,height=400,resizable=yes", scrollbar="YES");
};
</SCRIPT>
</HEAD>

<BODY link="#00cc00" vlink="#ff0000" alink="#ffff00">
<FORM method="POST" enctype="text/plain">
<CENTER>
<TABLE border="1" width="476">
<TBODY>
<TR>
<TD height="22" align="center" bgcolor="#bbe4f9" width="145"><FONT color="#000000"><B><FONT size="4">希望日</FONT></B></FONT></TD>
<TD height="22" colspan="2">
<script type="text/javascript">
var d1 = new Date();
var y = new Array('14','15');
document.writeln('<SELECT NAME="希望年">');
for (i=0; i<y.length; i++){
if (2002+i == d1.getFullYear()) {
document.writeln('<OPTION value="'+y[i]+'" selected>'+y[i]);
}
else {
document.writeln('<OPTION value="'+y[i]+'">'+y[i]);
}
}
document.writeln('</SELECT>');
</script>
</FONT>
<FONT size="4">年
<script type="text/javascript">
var d1 = new Date();
var m = new Array('01','02','03','04','05','06','07','08','09','10','12');

document.writeln('<SELECT NAME="希望月">');
for (i=1; i<=m.length; i++){
if (i == d1.getMonth()+1) {
document.writeln('<OPTION value="'+m[i-1]+'" selected>'+m[i-1]);
}
else {
document.writeln('<OPTION value="'+m[i-1]+'">'+m[i-1]);
}
}
document.writeln('</SELECT>');
</script>

<script type="text/javascript">
var d1 = new Date();
var d = new Array('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');


document.writeln('<SELECT NAME="希望日">');
for (i=1; i<=d.length; i++){
if (i == d1.getDate()) {
document.writeln('<OPTION value="'+d[i-1]+'" selected>'+d[i-1]);
}
else {
document.writeln('<OPTION value="'+d[i-1]+'">'+d[i-1]);
}
}
document.writeln('</SELECT>');
</script>
日</FONT></TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<CENTER></CENTER></FORM>
</BODY>
</HTML>
    • good
    • 0

ページが表示された時にプルダウン表示を現在日付にするなら



window.open("hyouji.htm", "MenuWindow","width=500,height=400,resizable=yes", scrollbar="YES");
};

ここから追加と編集。

function aaa(){
ddd = new Date()
nen = ddd.getYear()
tuki = ddd.getMonth()
hinichi = ddd.getDate() -1
if(nen != 2002)document.forms[0].elements[0].options[1].selected = 1
document.forms[0].elements[1].options[tuki].selected = 1
document.forms[0].elements[2].options[hinichi].selected = 1
}
</SCRIPT>
</HEAD>

<BODY link="#00cc00" vlink="#ff0000" alink="#ffff00" onLoad=aaa()>

ここまでが追加と編集。

<FORM method="POST" enctype="text/plain">
<CENTER>
<TABLE border="1" width="476">


あとは変更なし。

追加した部分では、body が読み込まれたら現在日を取得し、
それに対応したOPTIONの表示値を選択状態にしている。
    • good
    • 0

このプルダウンは、どのように表示するのでしょう?


もし、フォーム自体をCGI(例えばPerlなど)を使って作成しているのなら、Perlで現在日付を算出して、該当日付をHTML出力するときにselectedをつければ良いと思います。

JavaScriptで書き出す方法はmadmanさんが書かれているので、日付の部分をHTMLで直書きしていて、当日日付を自動選択させる場合のソースを載せておきますね。

<html>
<head>
<script language="javascript">
<!--
 function setDate(){
  var myDate=new Date();
  gettoDay = myDate.getYear().toString() + (myDate.getMonth()+1) + myDate.getDate();
  for(i=0;i<document.frm.slc.options.length;i++){
   if(document.frm.slc.options[i].value == gettoDay){
    document.frm.slc.selectedIndex = i;
   }
  }
 }
//-->
</script>
</head>
<body onLoad="setDate()">
<form name="frm">
<select name="slc">
 <option value="2002115">1月15日
 <option value="2002116">1月16日
 <option value="2002117">1月17日
 <option value="2002118">1月18日
 <option value="2002119">1月19日
</select>
</form>
</body>
</html>

IE5.5でのみ動作確認しました。
ただ、getYear()関数が、ブラウザによって取得する値が4桁だったり2桁だったりするので、全ブラウザに対応したい場合は、そこらへんの改良が必要と思います。(^^;;

この回答への補足

HIROYOさん、早速のご回答ありがとうございます。
No.1にご回答を頂いたmadmanさんのご回答の欄に補足をさせていただきました
ように、もしさらにお力をお借りできれば幸いです。
よろしくお願いします。

補足日時:2002/01/17 17:04
    • good
    • 0

こんなんでどうでしょう。


----
<HTML>
<HEAD>
<MEAT http-equiv="Content-script-type" content="text/javascript">
</HEAD>
<BODY>
<FORM METHOD=POST Action=".">
<script type="text/javascript">
var d1 = new Date();
document.writeln('<SELECT NAME="YEAR">');
for (i=2000; i<2010; i++){
if (i == d1.getFullYear()) {
document.writeln('<OPTION value="'+i+'" selected>'+i);
}
else {
document.writeln('<OPTION value="'+i+'">'+i);
}
}
document.writeln('</SELECT>');

document.writeln('<SELECT NAME="MONTH">');
for (i=1; i<=12; i++){
if (i == d1.getMonth()+1) {
document.writeln('<OPTION value="'+i+'" selected>'+i);
}
else {
document.writeln('<OPTION value="'+i+'">'+i);
}
}
document.writeln('</SELECT>');

document.writeln('<SELECT NAME="DAY">');
for (i=1; i<=31; i++){
if (i == d1.getDate()) {
document.writeln('<OPTION value="'+i+'" selected>'+i);
}
else {
document.writeln('<OPTION value="'+i+'">'+i);
}
}
document.writeln('</SELECT>');
</script>
</FORM>

</BODY>
</HTML>
----

この回答への補足

早速のご回答ありがとうございます。
何せ初心者のために、説明不足でいろいろすみません。
madmanさんのご回答をそのままhtmlに書き換えたら理想通りになりましたが、
私の頭では応用するのが難しいです。(すみません)
もし、さらにお力をお借りできればお願いします。

私の作ったHTMLは下記の通りです。
これにどのように補足すればよいのでしょうか?


<HTML>
<HEAD>

<SCRIPT language="JavaScript">
function hanbai() {;
window.open("hyouji.htm", "MenuWindow", "width=500,height=400,resizable=yes", scrollbar="YES");
};
</SCRIPT>
</HEAD>

<BODY link="#00cc00" vlink="#ff0000" alink="#ffff00">
<FORM method="POST" enctype="text/plain">
<CENTER>
<TABLE border="1" width="476">
<TBODY>
<TR>
<TD height="22" align="center" bgcolor="#bbe4f9" width="145"><FONT color="#000000"><B><FONT size="4">希望日</FONT></B></FONT></TD>
<TD height="22" colspan="2"><FONT color="#000000"><SELECT name="希望年">
<OPTION value="14">H14</OPTION>
<OPTION value="15">H15</OPTION>
</SELECT></FONT><FONT size="4">年<SELECT name="希望月">
<OPTION value="01" selected>01</OPTION>
<OPTION value="02">02</OPTION>
<OPTION value="03">03</OPTION>
<OPTION value="04">04</OPTION>
<OPTION value="05">05</OPTION>
<OPTION value="06">06</OPTION>
<OPTION value="07">07</OPTION>
<OPTION value="08">08</OPTION>
<OPTION value="09">09</OPTION>
<OPTION value="10">10</OPTION>
<OPTION value="11">11</OPTION>
<OPTION value="12">12</OPTION>
</SELECT>月<SELECT name="希望日">
<OPTION value="01" selected>01</OPTION>
<OPTION value="02">02</OPTION>
<OPTION value="03">03</OPTION>
<OPTION value="04">04</OPTION>
<OPTION value="05">05</OPTION>
<OPTION value="06">06</OPTION>
<OPTION value="07">07</OPTION>
<OPTION value="08">08</OPTION>
<OPTION value="09">09</OPTION>
<OPTION value="10">10</OPTION>
<OPTION value="11">11</OPTION>
<OPTION value="12">12</OPTION>
<OPTION value="13">13</OPTION>
<OPTION value="14">14</OPTION>
<OPTION value="15">15</OPTION>
<OPTION value="16">16</OPTION>
<OPTION value="17">17</OPTION>
<OPTION value="18">18</OPTION>
<OPTION value="19">19</OPTION>
<OPTION value="20">20</OPTION>
<OPTION value="21">21</OPTION>
<OPTION value="22">22</OPTION>
<OPTION value="23">23</OPTION>
<OPTION value="24">24</OPTION>
<OPTION value="25">25</OPTION>
<OPTION value="26">26</OPTION>
<OPTION value="27">27</OPTION>
<OPTION value="28">28</OPTION>
<OPTION value="29">29</OPTION>
<OPTION value="30">30</OPTION>
<OPTION value="31">31</OPTION>
</SELECT>日</FONT></TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<CENTER></CENTER></FORM>
</BODY>
</HTML>

補足日時:2002/01/17 17:03
    • good
    • 0

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


人気Q&Aランキング