OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

プルダウンメニュー

  • すぐに回答を!
  • 質問No.227497
  • 閲覧数321
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 16% (2/12)

 こんばんは。
日時をプルダウンメニューで選択するのですが、
月が変わると、内容も変わるようにしたいと思っています。JavaScriptで、出来ると聞いたのですが、
やり方が解りません。
このように書いてみたのですが、
画面には何も表示されません。
助けてください。

<SCRIPT LANGUAGE = "JavaScript">
<FORM NAME="form1" METHOD="post">
if (mm = 2){
document.write("<SELECT NAME="dd1" onChange="document.form1.dd.value=dd1.options[dd1.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[dd1.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>
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル6

ベストアンサー率 100% (5/5)

kentayosといいます。よろしくお願いします。 月ごとに内容を変える方法としましては、 まず、毎月の最終日が何日なのかというのを配列などであらかじめ定義しておき、 (例ではうるう年の判定もしてみました) 現在の月に応じてその配列の値を参照することにより、月の最終日を得ます。 そしてあとは必要個数(1日から月の最終日まで)のOPTION部分をfor文などで 自動的に書き出させれば完成です。 ...続きを読む
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月です。
  • 回答No.2
レベル9

ベストアンサー率 41% (40/97)

まず、何も表示されない一番大きな原因は document.write("<SELECT NAME="dd1"・・・・・"); の部分です。 document.write("・・・・"); のように文字列指定の " " の間にさらに " を書くことはできません。 もし、書く場合は document.w ...続きを読む
まず、何も表示されない一番大きな原因は
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 の条件で等しいかの比較を行う場合は = ではなく、== を使います。
= は代入にのみ使います。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ