JavaScriptのうるう年に対応したプルダウン処理についての質問です。
年を選択したら、うるう年の場合は2月は29までとし、
それ以外はその月に合わせた日にちとする、という要素を詰め込みたいのです。
以下が現在のソースとなります。HTML部分が非常に見難く申し訳ありません。
<SCRIPT language="JavaScript"> <!-- //月によって日数を変更する処理 function setDay(year,month,day) { var y = parseInt(document.getElementById(year).value,10); var m = parseInt(document.getElementById(month).value,10); // 閏年判定 if (2 == m && (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))) { //月の最終日の変数 var last = 29; } else { var lastday = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); last = lastday[m-1]; } // 要素取得と初期化 var obj = document.getElementById(day); obj.length = 0; // 日の要素を追加 for (var i = 0; i < last; i++) { obj.options[obj.length++] = new Option(i + 1, i + 1); } } // --> </SCRIPT> <select name="year" id="year" onChange="setDay('year','month','day');"><% Calendar cl = Calendar.getInstance();%> <% int year = cl.get(Calendar.YEAR); %> <% for(int i=year-40; i<=year-17; i++){ %> </select>年 <select name="month" id="month" onChange="setDay('year','month','day');"> <% for(int i = 1; i <= 12; i++){ %> <option value="<%=i%>"><%=i%></option> <% } %> </select>月 <select name="date" id="date" onChange="setDay('year','month','day');"> <% for(int i = 1; i <= 31; i++){ %> <option value="<%=i%>"><%=i%></option> <% } %> <option value="<%=i%>"><%=i%></option> <% } %> </select>日
最初に設定した時は、うるう年は判定され、又月毎の日にちが選定されたのですが、「何か(この何かが思い出せないのです)」したせいで全く反映されなくなり、堂々巡りとなってしまっています。なのでJavaScriptのうるう年判定のソースが合っているのかも怪しいのですが、反映の仕方を教えて頂けないでしょうか?よろしくお願い致します。
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。