解決済みの質問
質問:No.4792608
すぐに回答ほしいです
お気に入り投稿に追加する (0人が追加しました)
回答数6
閲覧数43
取得日時によるドロップダウンリストの制御
お世話になります。

現在htmlのselect、optionタグにて
1月から12月までを選択できるコンボボックスがあるのですが、
これを本日の取得日時によって選択できる項目を変えたいと考えて
おります。

具体的には、日にちが21日になった時点で当月の月を選択肢から
無くしたいのです。

恐れ入りますが、何卒宜しくお願い致します。
投稿日時 - 2009-03-13 10:27:07
質問者が選んだベストアンサー
回答:No.1
optionタグをJavaScriptでdocument.writeを使って
出力するようにするのよ。

今日の月・日は
http://www.nishishi.com/javascript/2007/now-datetime.html
を参考にするといいわ。

あとはif文で判定するだけね。
投稿日時 - 2009-03-13 10:41:48
この回答を支持する
(現在0人が支持しています)
お礼
早速のご回答どうもありがとうございます(^^

とりあえず、以下の通り作ってみたのですが、
リストに項目が追加されませんでした。

これはどこがいけないのでしょうか??
度々の質問恐縮なのですが、宜しくお願いします。


■ヘッダ部分↓↓
<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">月
投稿日時 - 2009-03-13 12:32:24
この質問は役に立ちましたか?
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答
回答:No.6
JavaScriptに書かれている
<%'----------------------------------
' ドロップダウンリストの制御
'------------------------------------'%>
のせいよ。
JavaScriptはこれをJavaScriptの構文とみなさないため
正常に動かないのよ。
投稿日時 - 2009-03-13 22:10:27
この回答を支持する
(現在0人が支持しています)
お礼
やっとうまくいきました。
お礼が遅くない申し訳ありません。

初心者の私に最後までお付き合いいただき、大変ありがとうございました。m(_ _)m
投稿日時 - 2009-03-15 00:02:40
回答:No.5
何も項目が追加されない・・・。
ダブルクォーテーションの件は直した?
できれば今のコードを見たいわ。
投稿日時 - 2009-03-13 18:06:00
この回答を支持する
(現在0人が支持しています)
補足
<%@ 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>
投稿日時 - 2009-03-13 18:30:04
お礼
コードを添付致します。
投稿日時 - 2009-03-13 18:28:44
回答:No.4
> if文
ゴメン。
>と<を見間違えたわ。
逆に考えてしまった。
大丈夫ね。

> まだ成功しません
どう成功しないの?
投稿日時 - 2009-03-13 15:39:52
この回答を支持する
(現在0人が支持しています)
お礼
お世話様です。

>>どう成功しないの?

何も項目が追加されていないコンボボックスが
表示されてしまいます;
投稿日時 - 2009-03-13 16:59:32
回答:No.3
ボディ部分の方
関数を呼び出すとき、
function
はいらないわ。

あとif文がおかしいわよ。
これだと21日になっても表示されてしまうわ。
投稿日時 - 2009-03-13 14:00:38
この回答を支持する
(現在0人が支持しています)
お礼
>>ボディ部分の方関数を呼び出すとき、
>>functionはいらないわ。

了解です。

>>あとif文がおかしいわよ。
>>これだと21日になっても表示されてしまうわ。

よく分からないのですが、下の様に直せばいいのでしょうか?
else if (date < 21) ⇒ else if (date <= 20)

とりあえず、修正してみましたが、まだ成功しません(><;)
投稿日時 - 2009-03-13 14:40:41
回答:No.2
タイプミスですね
document.write("<option value=""></option>");
の行
value="" ← ダブルクォーテーションになってます


#後は、JavaScriptがOFF環境のみに、1~12常時表示があるといいかも
投稿日時 - 2009-03-13 13:19:23
この回答を支持する
(現在0人が支持しています)
お礼
ご指摘ありがとうございました。
ただ、この部分を修正してもまだうまくいきませんでした。
投稿日時 - 2009-03-13 13:40:01
もっと聞いてみる
関連するQ&Aはこちら
フォーム内のプルダウンの項目を制御する方法がわからなくて困っています。 form1というフォーム内にプルダウンが3つあります。 <select name="select_1"> <option v...
<select name="test"> <option>通常のフォント</option> <option>太字</option> </select> というリストメニューで、「太字」のほうだけ...
度々質問して申し訳ありません。先程の質問と合わせて解答いただければと思います。 海外サイトで買物をする時Select Your Payment Optionと出て以下の選択肢が表示されます。出来れば...
この他の関連するQ&Aをキーワードで探す
プログラミングのサブカテゴリ
[PR] おすすめの注目情報
カテゴリ:JavaScript
RSS
-PR-
PR
-PR-