作ろうとしているもの
生年月日をプルダウンで選択出来るものを作っています。
選択する西暦・月によって、選択出来る日数を変えられる様にしています。
なので、西暦や月の値を変える度に、日数のデータは空になり、選択出来る日数の値が変わります。
具体的には、「うるう年の2月は29日まで選択できるが、それ以外の年の2月は28日までしか選択できない。」です。
問題点
問題があるコードはたぶん、JavaScriptの1個目の「else if」だと思います。
1、3、5、7、8、10、12月は日数が31日まであるので、31日までプルダウンで表示したいです。
しかし、1月は31日まで選択出来るのですが、それ以外の月は何故か30日までしか表示されません。
「検証」を使って、「month_value == (1||3||5||7||8||10||12)」を実行してみたのですが、
month_valueの値とカッコ内の先頭の数字が一致する場合しかTRUEを返しません。
全く訳が分からない状況です。
何方か教えて頂きたいです。
コード
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 var x = document.form_signin.day; 8 if (x.hasChildNodes()) { 9 while (x.childNodes.length > 0) { 10 x.removeChild(x.firstChild) 11 } 12 } 13 14 15 if(year_value%4 == 0 && month_value == 2 ){ //29 16 for(var i=1; i<30; i++){ 17 document.form_signin.day.options[i] = new Option(i+"日", i); 18 19 } 20 }else if(month_value == (1||3||5||7||8||10||12) ){ //31 21 for(var i=1; i<32; i++){ 22 document.form_signin.day.options[i] = new Option(i+"日", i); 23 } 24 }else if(month_value == 2 ){ //28 25 for(var i=1; i<29; i++){ 26 document.form_signin.day.options[i] = new Option(i+"日", i); 27 } 28 }else{ //30 29 for(var i=1; i<31; i++){ 30 document.form_signin.day.options[i] = new Option(i+"日", i); 31 } 32 } 33}
HTML
1<form name="form_signin"> 2 <select name="year" id="year" class="w100" 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 <select name="month" id="month" class="w80" onchange='monthCheck()' > 42 <option value="0">-月-</option> 43 <option value="1">1月</option> 44 <option value="2">2月</option> 45 <option value="3">3月</option> 46 <option value="4">4月</option> 47 <option value="5">5月</option> 48 <option value="6">6月</option> 49 <option value="7">7月</option> 50 <option value="8">8月</option> 51 <option value="9">9月</option> 52 <option value="10">10月</option> 53 <option value="11">11月</option> 54 <option value="12">12月</option> 55 </select> 56 57 <select name="day" id="day" class="w80" > 58 <option value="0">-日-</option> 59 </select> 60</form>
よろしくお願いします!!!

回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。