- 締切済み
プルダウン日付を設定する方法
お世話になります。 3つのプルダウンから年、月、日を選択できるようにしたいのですが、年を選択していない場合は月、月をを選択していない場合は日の内容を表示しないようにして、年、月を選択した際に日には閏年などを反映させた数字を表示をしたくおもっております。 どのようにすればいいのでしょうか?よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 9arabi
- ベストアンサー率32% (140/433)
年度に関してだけでしたら、以下のような方法が可能です。 No.1さんの回答と組み合わせれば、うまくいくのかもしれません。あまりJavaScriptは詳しくなくて試せていませんが。 ご参考までに。 <script language="JavaScript"> <!-- var dToday ; var dYear; var dMonth; var dDay; var beforeYear = 3; //何年前から var afterYear = 7; //何年後まで dToday = new Date(); dYear = dToday.getFullYear(); dMonth = dToday.getMonth() + 1; dDay = dToday.getDate(); //--> </script> ---<body>内の年度のところに埋め込む。 <select name="area" onchange="..."> <option>年</option> <script language="JavaScript"> <!-- for (var i = dYear-beforeYear; i <= dYear+afterYear; i++){ document.write("<option value=\"" + i + "\">" + i + "</option>"); } //--> </script> </select>年 ---
- iiikkk
- ベストアンサー率37% (92/247)
#1です。 > 年度に関してですが、現在の日付から年度を取得しまして、それより3年前から7年後まで設定したとすると決められた値では無理ではないでしょうか? > そういった場合はどうすればいいのでしょうか? 私はPHPを使って、ココの部分を動的に対応しています。 JavaScriptだけでやる方法は思いつきません。 力になれず、申し訳ない。 がんばってください。
- iiikkk
- ベストアンサー率37% (92/247)
こんな感じでしょうか。 <html> <script language="javascript"> <!-- var _area = [ [0,0,""], [0,1,"2004"], ]; var _subArea = [ [1,0,""], [1,1,"1"], [1,2,"2"], [1,3,"3"], ]; var _subSubArea = [ [1,0,""], [1,1,"28"], [1,2,"29"], [1,3,"30"], [1,4,"31"], [2,0,""], [2,1,"28"], [2,2,"29"], [3,0,""], [3,1,"28"], [3,2,"29"], [3,3,"30"], [3,4,"31"], ]; function chg(subCatAry,pID,chgForm,delForm){ if(delForm){ for (var i=delForm.options.length-1;i>= 0;i--){ delForm.options[i] = null; } } for (var i=chgForm.options.length-1;i>= 0;i--){ chgForm.options[i] = null; } var j = 0; for(var i=0;i<subCatAry.length;i++){ if(subCatAry[i][0] == pID){ chgForm.options[j++] = new Option(subCatAry[i][2],subCatAry[i][1]); } } } function init(ary,fm){ for(var i=0;i<ary.length;i++){ fm.options[i] = new Option(ary[i][2],ary[i][1]); } fm.options[0].selected = true; } //--> </script> <body onLoad="JavaScript:init(_area,document.F.area);"> <form name="F"> <select name="area" style="width:150" onChange="JavaScript:chg(_subArea,this.value,document.F.subArea,document.F.subSubArea);"> <option>選択</option> </select> <select name="subArea" style="width:150" onChange="JavaScript:chg(_subSubArea,this.value,document.F.subSubArea);"> <option>選択</option> </select> <select name="subSubArea" style="width:150" > <option>選択</option> </select> </form> </body> </html>
補足
ご返答ありがとうございます。 年度に関してですが、現在の日付から年度を取得しまして、それより3年前から7年後まで設定したとすると決められた値では無理ではないでしょうか? そういった場合はどうすればいいのでしょうか? よろしくお願いします。
お礼
いえ、参考なりました。ありがとうございます。