うるう年判定を作りたい
JavaScriptで、閏年かどうかを判定するプルダウンを作りたいです。
プルダウンでうるう年の2月を選択すると、29日が出てきます。
その後に別の月を入力すると30日や31日も選択出来る様になります。
しかし、別の月を洗濯した後に2月を選択しても日数のプルダウンが29日までに戻らず、30日や31日を選択出来る状態になっています。
仕様としては、選択している西暦と月のデータによって、選択できる日数が変わる様にしたい。
具体的には、「閏年の2月は29日まで選択できるが、それ以外の2月は28日までしか選択出来ない」とか
「4月や6月など30日までしか日数がない月を選択した場合は、30日までしかプルダウンされない」など。
該当のソースコード
JavaScript
1const monthCheck = function(){ 2 var year_value = document.getElementById("year").value; 3 var month_value = document.getElementById("month").value; 4 year_value = parseInt(year_value); 5 month_value = parseInt(month_value); 6 7 if(year_value%4 == 0 && month_value == 2 ){ //閏年 8 for(var i=1; i<30; i++){ 9 document.form_signin.day.options[i] = new Option(i+"日", i); 10 } 11 }else if(month_value == (1||3||5||7||8||10||12) ){ //31日の月 12 for(var i=1; i<32; i++){ 13 document.form_signin.day.options[i] = new Option(i+"日", i); 14 } 15 }else if(month_value == 2 ){ //閏年じゃない2月 16 for(var i=1; i<29; i++){ 17 document.form_signin.day.options[i] = new Option(i+"日", i); 18 } 19 }else{ //30日の月 20 for(var i=1; i<31; i++){ 21 document.form_signin.day.options[i] = new Option(i+"日", i); 22 } 23 } 24}
html
1<form name="form_signin"> 2 <select name="birthday" id="year" onchange="monthCheck()" > 3 <option value="1">--西暦--</option> 4 <option value="1980">1980年</option> 5 <option value="1981">1981年</option> 6 <option value="1982">1982年</option> 7 <option value="1983">1983年</option> 8 <option value="1984">1984年</option> 9 <option value="1985">1985年</option> 10 <option value="1986">1986年</option> 11 <option value="1987">1987年</option> 12 <option value="1988">1988年</option> 13 <option value="1989">1989年</option> 14 <option value="1990">1990年</option> 15 <option value="1991">1991年</option> 16 <option value="1992">1992年</option> 17 <option value="1993">1993年</option> 18 <option value="1994">1994年</option> 19 <option value="1995">1995年</option> 20 <option value="1996">1996年</option> 21 <option value="1997">1997年</option> 22 <option value="1998">1998年</option> 23 <option value="1999">1999年</option> 24 <option value="2000">2000年</option> 25 <option value="2001">2001年</option> 26 <option value="2002">2002年</option> 27 <option value="2003">2003年</option> 28 <option value="2004">2004年</option> 29 <option value="2005">2005年</option> 30 <option value="2006">2006年</option> 31 <option value="2007">2007年</option> 32 <option value="2008">2008年</option> 33 <option value="2009">2009年</option> 34 <option value="2010">2010年</option> 35 <option value="2011">2011年</option> 36 <option value="2012">2012年</option> 37 <option value="2013">2013年</option> 38 <option value="2014">2014年</option> 39 <option value="2015">2015年</option> 40 </select> 41 42 <select name="birthday" id="month" onchange='monthCheck(this.selectedIndex)' > 43 <option value="0">-月-</option> 44 <option value="1">1</option> 45 <option value="2">2</option> 46 <option value="3">3</option> 47 <option value="4">4</option> 48 <option value="5">5</option> 49 <option value="6">6</option> 50 <option value="7">7</option> 51 <option value="8">8</option> 52 <option value="9">9</option> 53 <option value="10">10</option> 54 <option value="11">11</option> 55 <option value="12">12</option> 56 </select> 57 <select name="birthday" id="day" > 58 <option value="0">-日-</option> 59 </select> 60</form> 61
よろしくお願いします!!!

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/07 03:30
2018/08/07 03:34 編集
2018/08/07 05:06
2018/08/07 05:07
2018/08/07 05:09
2018/08/07 05:14
2018/08/07 08:39