- ベストアンサー
取得日時によるドロップダウンリストの制御
お世話になります。 現在htmlのselect、optionタグにて 1月から12月までを選択できるコンボボックスがあるのですが、 これを本日の取得日時によって選択できる項目を変えたいと考えて おります。 具体的には、日にちが21日になった時点で当月の月を選択肢から 無くしたいのです。 恐れ入りますが、何卒宜しくお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
optionタグをJavaScriptでdocument.writeを使って 出力するようにするのよ。 今日の月・日は http://www.nishishi.com/javascript/2007/now-datetime.html を参考にするといいわ。 あとはif文で判定するだけね。
その他の回答 (5)
- askaaska
- ベストアンサー率35% (1455/4149)
JavaScriptに書かれている <%'---------------------------------- ' ドロップダウンリストの制御 '------------------------------------'%> のせいよ。 JavaScriptはこれをJavaScriptの構文とみなさないため 正常に動かないのよ。
お礼
やっとうまくいきました。 お礼が遅くない申し訳ありません。 初心者の私に最後までお付き合いいただき、大変ありがとうございました。m(_ _)m
- askaaska
- ベストアンサー率35% (1455/4149)
何も項目が追加されない・・・。 ダブルクォーテーションの件は直した? できれば今のコードを見たいわ。
お礼
コードを添付致します。
補足
<%@ 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)
> if文 ゴメン。 >と<を見間違えたわ。 逆に考えてしまった。 大丈夫ね。 > まだ成功しません どう成功しないの?
お礼
お世話様です。 >>どう成功しないの? 何も項目が追加されていないコンボボックスが 表示されてしまいます;
- askaaska
- ベストアンサー率35% (1455/4149)
ボディ部分の方 関数を呼び出すとき、 function はいらないわ。 あとif文がおかしいわよ。 これだと21日になっても表示されてしまうわ。
お礼
>>ボディ部分の方関数を呼び出すとき、 >>functionはいらないわ。 了解です。 >>あとif文がおかしいわよ。 >>これだと21日になっても表示されてしまうわ。 よく分からないのですが、下の様に直せばいいのでしょうか? else if (date < 21) ⇒ else if (date <= 20) とりあえず、修正してみましたが、まだ成功しません(><;)
- HIRSYU
- ベストアンサー率51% (45/87)
タイプミスですね document.write("<option value=""></option>"); の行 value="" ← ダブルクォーテーションになってます #後は、JavaScriptがOFF環境のみに、1~12常時表示があるといいかも
お礼
ご指摘ありがとうございました。 ただ、この部分を修正してもまだうまくいきませんでした。
お礼
早速のご回答どうもありがとうございます(^^ とりあえず、以下の通り作ってみたのですが、 リストに項目が追加されませんでした。 これはどこがいけないのでしょうか?? 度々の質問恐縮なのですが、宜しくお願いします。 ■ヘッダ部分↓↓ <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">月