• ベストアンサー

取得日時によるドロップダウンリストの制御

お世話になります。 現在htmlのselect、optionタグにて 1月から12月までを選択できるコンボボックスがあるのですが、 これを本日の取得日時によって選択できる項目を変えたいと考えて おります。 具体的には、日にちが21日になった時点で当月の月を選択肢から 無くしたいのです。 恐れ入りますが、何卒宜しくお願い致します。

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

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

optionタグをJavaScriptでdocument.writeを使って 出力するようにするのよ。 今日の月・日は http://www.nishishi.com/javascript/2007/now-datetime.html を参考にするといいわ。 あとはif文で判定するだけね。

shunnosuke
質問者

お礼

早速のご回答どうもありがとうございます(^^ とりあえず、以下の通り作ってみたのですが、 リストに項目が追加されませんでした。 これはどこがいけないのでしょうか?? 度々の質問恐縮なのですが、宜しくお願いします。 ■ヘッダ部分↓↓ <SCRIPT LANGUAGE="JavaScript"> <!-- function dropdown() { var nowdate = new Date(); var mon = nowdate.getMonth() + 1; // 月 var date = nowdate.getDate(); // 日 document.write("<option value=""></option>"); if (mon != 1) document.write("<option value='1'>1</option>"); else if (date < 21) document.write("<option value='1'>1</option>"); if (mon != 2) document.write("<option value='2'>2</option>"); else if (date < 21) document.write("<option value='2'>2</option>"); if (mon != 3) document.write("<option value='3'>3</option>"); else if (date < 21) document.write("<option value='3'>3</option>"); ・・・・・以下12まで同様に記述 } //--> </SCRIPT> ■ボディ部分↓↓↓ <SELECT NAME="start"> <script language="JavaScript" type="text/javascript"> <!--   function dropdown();//ドロップダウンリストの変更 // --> </script> </SELECT> <FONT SIZE="2">月

その他の回答 (5)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.6

JavaScriptに書かれている <%'---------------------------------- ' ドロップダウンリストの制御 '------------------------------------'%> のせいよ。 JavaScriptはこれをJavaScriptの構文とみなさないため 正常に動かないのよ。

shunnosuke
質問者

お礼

やっとうまくいきました。 お礼が遅くない申し訳ありません。 初心者の私に最後までお付き合いいただき、大変ありがとうございました。m(_ _)m

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.5

何も項目が追加されない・・・。 ダブルクォーテーションの件は直した? できれば今のコードを見たいわ。

shunnosuke
質問者

お礼

コードを添付致します。

shunnosuke
質問者

補足

<%@ EnableSessionState=False %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS"> <TITLE>●●●</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- <%'---------------------------------- ' ドロップダウンリストの制御 '------------------------------------'%> function dropdown() { var nowdate = new Date(); var mon = nowdate.getMonth() + 1; // 月 var date = nowdate.getDate(); // 日 document.write("<option value=''></option>"); if (mon != 1) document.write("<option value='1'>1</option>"); else if (date < 21) document.write("<option value='1'>1</option>"); if (mon != 2) document.write("<option value='2'>2</option>"); else if (date < 21) document.write("<option value='2'>2</option>"); if (mon != 3) document.write("<option value='3'>3</option>"); else if (date < 21) document.write("<option value='3'>3</option>"); if (mon != 4) document.write("<option value='4'>4</option>"); else if (date < 21) document.write("<option value='4'>4</option>"); if (mon != 5) document.write("<option value='5'>5</option>"); else if (date < 21) document.write("<option value='5'>5</option>"); if (mon != 6) document.write("<option value='6'>6</option>"); else if (date < 21) document.write("<option value='6'>6</option>"); if (mon != 7) document.write("<option value='7'>7</option>"); else if (date < 21) document.write("<option value='7'>7</option>"); if (mon != 8) document.write("<option value='8'>8</option>"); else if (date < 21) document.write("<option value='8'>8</option>"); if (mon != 9) document.write("<option value='9'>9</option>"); else if (date < 21) document.write("<option value='9'>9</option>"); if (mon != 10) document.write("<option value='10'>10</option>"); else if (date < 21) document.write("<option value='10'>10</option>"); if (mon != 11) document.write("<option value='11'>11</option>"); else if (date < 21) document.write("<option value='11'>11</option>"); if (mon != 12) document.write("<option value='12'>12</option>"); else if (date < 21) document.write("<option value='12'>12</option>"); } //--> </SCRIPT> </HEAD> <BODY> <FORM> <SELECT NAME="start"> <script language="JavaScript" type="text/javascript"> <!-- dropdown();//ドロップダウンリストの変更(21日以降時) // --> </script> </SELECT> <FONT SIZE="2">月 </FORM> </BODY> </HTML>

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.4

> if文 ゴメン。 >と<を見間違えたわ。 逆に考えてしまった。 大丈夫ね。 > まだ成功しません どう成功しないの?

shunnosuke
質問者

お礼

お世話様です。 >>どう成功しないの? 何も項目が追加されていないコンボボックスが 表示されてしまいます;

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

ボディ部分の方 関数を呼び出すとき、 function はいらないわ。 あとif文がおかしいわよ。 これだと21日になっても表示されてしまうわ。

shunnosuke
質問者

お礼

>>ボディ部分の方関数を呼び出すとき、 >>functionはいらないわ。 了解です。 >>あとif文がおかしいわよ。 >>これだと21日になっても表示されてしまうわ。 よく分からないのですが、下の様に直せばいいのでしょうか? else if (date < 21) ⇒ else if (date <= 20) とりあえず、修正してみましたが、まだ成功しません(><;)

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.2

タイプミスですね document.write("<option value=""></option>"); の行 value="" ← ダブルクォーテーションになってます #後は、JavaScriptがOFF環境のみに、1~12常時表示があるといいかも

shunnosuke
質問者

お礼

ご指摘ありがとうございました。 ただ、この部分を修正してもまだうまくいきませんでした。

関連するQ&A