• 締切済み

プルダウンメニュー

 こんばんは。 日時をプルダウンメニューで選択するのですが、 月が変わると、内容も変わるようにしたいと思っています。JavaScriptで、出来ると聞いたのですが、 やり方が解りません。 このように書いてみたのですが、 画面には何も表示されません。 助けてください。 <SCRIPT LANGUAGE = "JavaScript"> <FORM NAME="form1" METHOD="post"> if (mm = 2){ document.write("<SELECT NAME="dd1" onChange="document.form1.dd.value=dd1.options[d d1.selectedIndex].value"> <OPTION VALUE="00"> <OPTION VALUE="16">16 <OPTION VALUE="17">17 <OPTION VALUE="18">18 <OPTION VALUE="19">19 <OPTION VALUE="20">20 <OPTION VALUE="21">21 <OPTION VALUE="22">22 <OPTION VALUE="23">23 <OPTION VALUE="24">24 <OPTION VALUE="25">25 <OPTION VALUE="26">26 <OPTION VALUE="27">27 <OPTION VALUE="28">28 </SELECT>日"); } if ((mm = 4) || (mm = 6) || (mm = 9) || (mm = 11)){ document.write("<SELECT NAME="dd1" onChange="document.form1.dd.value=dd1.options[d d1.selectedIndex].value"> <OPTION VALUE="00"> <OPTION VALUE="16">16 <OPTION VALUE="17">17 <OPTION VALUE="18">18 <OPTION VALUE="19">19 <OPTION VALUE="20">20 <OPTION VALUE="21">21 <OPTION VALUE="22">22 <OPTION VALUE="23">23 <OPTION VALUE="24">24 <OPTION VALUE="25">25 <OPTION VALUE="26">26 <OPTION VALUE="27">27 <OPTION VALUE="28">28 <OPTION VALUE="29">29 <OPTION VALUE="30">30 </SELECT>日"); } else{入らないので省きます。 </FORM> </SCRIPT>

みんなの回答

  • peso
  • ベストアンサー率41% (40/97)
回答No.2

まず、何も表示されない一番大きな原因は document.write("<SELECT NAME="dd1"・・・・・"); の部分です。 document.write("・・・・"); のように文字列指定の " " の間にさらに " を書くことはできません。 もし、書く場合は document.write("<SELECT NAME=\"dd1\"・・・・・"); もしくは document.write("<SELECT NAME='dd1'・・・・・"); のようにします。 <FORM NAME="form1" METHOD="post"> この文も <SCRIPT> タグ内に入っているので document.write("<FORM NAME='form1' METHOD='post'>"); のようにします。 そのまま書く場合は <SCRIPT> タグの外に書きます。 そのほかは if の条件で等しいかの比較を行う場合は = ではなく、== を使います。 = は代入にのみ使います。

  • kentayos
  • ベストアンサー率100% (5/5)
回答No.1

kentayosといいます。よろしくお願いします。 月ごとに内容を変える方法としましては、 まず、毎月の最終日が何日なのかというのを配列などであらかじめ定義しておき、 (例ではうるう年の判定もしてみました) 現在の月に応じてその配列の値を参照することにより、月の最終日を得ます。 そしてあとは必要個数(1日から月の最終日まで)のOPTION部分をfor文などで 自動的に書き出させれば完成です。 例では今月の日数分のOPTIONを自動的に書き出させています。 << 例 >> ---------------------------------------------------------------------- <html> <head> <title>月が変わるごとにオプションの内容を変える</title> </head> <body> <script language="JavaScript"> <!-- now=new Date(); mm=now.getMonth(); //月を取得(0~11) yy=now.getFullYear(); //年を取得 eday=new Array(31,28,31,30,31,30,31,31,30,31,30,31); //月の最終日 if((yy%4 == 0) && (yy%100 != 0) || (yy%400 == 0)) eday[1]=29; //うるう年の判定 document.write((mm+1)+"月<select>"); for(var i=1;i<=eday[mm];i++) { document.write("<option value='"+i+"'>"+i); } document.write("</select>日"); //--> </script> </body> </html> ---------------------------------------------------------------------- ※getMonth()を使用の際は月が0~11という1を引いた値で得られるので注意が必要です ⇒0なら1月、2なら3月、11なら12月です。

関連するQ&A