• ベストアンサー

ジャバスクリプトを使うのでしょうか?

初心者です。説明が不充分で、理解できないような文章ですみません。 個人的なホームページを作成しています。 フォームを使ってアンケートを送信できるものを作っていますが、 そこで問題点にぶつかってしまいましたので、お力をお借りしたいです。 プルダウン表示で自動的に現在日付を規定値に表示したいのですが、 どのようにすればいいのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • madman
  • ベストアンサー率24% (612/2465)
回答No.3

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>

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • A__
  • ベストアンサー率47% (22/46)
回答No.4

ページが表示された時にプルダウン表示を現在日付にするなら 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の表示値を選択状態にしている。

すると、全ての回答が全文表示されます。
noname#1785
noname#1785
回答No.2

このプルダウンは、どのように表示するのでしょう? もし、フォーム自体を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桁だったりするので、全ブラウザに対応したい場合は、そこらへんの改良が必要と思います。(^^;;

oha-kon
質問者

補足

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

すると、全ての回答が全文表示されます。
  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

こんなんでどうでしょう。 ---- <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> ----

oha-kon
質問者

補足

早速のご回答ありがとうございます。 何せ初心者のために、説明不足でいろいろすみません。 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>

すると、全ての回答が全文表示されます。

関連するQ&A