原生JS 下拉列表联动(年、月、日)
要点
1:year、month、day在页面加载时就导入
2:day列表随着year、month的改变而改变(是否闰年、每个月有多少天)
html代码:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>年月日</title> <script type="text/javascript" src="changeDate.js"> </script> </head> <body> <select name="year" onchange="inDate()" id="yy"> </select> <select name="month" onchange="inDate()" id="month"> </select> <select name="day" id="day"> </select> </body> </html>
Js代码:
window.onload=function () { inYear(); inMonth(); inDay(); }
<!---插入year列表---> function inYear() { var pro1 = document.getElementById("yy"); <!--在 FF等浏览器内getYear()返回的是当前年份-1900的值,使用getFullYear()可以兼容FF和IE--> var year = new Date().getFullYear(); var year1 = new Array(); for (var i = year - 30; i <= year + 30; i++) { year1[i - (year - 30)] = new Option(i); pro1.options[i - (year - 30)] = year1[i - (year - 30)]; } }
<!---插入month列表---> function inMonth() { var pro2 = document.getElementById("month"); for (var i = 1; i <= 12; i++) { pro2.options[i - 1] = new Option(i); } }
<!---插入day列表---> function inDay(){ var pro3=document.getElementById("day"); for(var i = 1; i <= 31; i++){ pro3.options[i-1]=new Option(i); } }
<!---动态更新day列表方法---> function append(x,y){ var option=new Option(y,y); x.options.add(option); } function inDate(){ var y = document.getElementsByName("year")[0].value; var m = document.getElementsByName("month")[0].value; var day=document.getElementsByName("day")[0]; day.innerHTML=""; if(m==1||m==3| m==5||m==7||m==8||m==10||m==12){ for(var j = 1; j <= 31; j++){ append(day,j); } } else if(m==4||m==6||m==9||m==11){ for(var j = 1; j <= 30; j++){ append(day,j); } } else if(m==2){ var flag=(y%4==0)&&(y%100!=0)||(y%400==0); if(flag){ for(var j = 1; j <= 29; j++){ append(day,j); } } else{ for(var j = 1;j <= 28; j++){ append(day,j); } } } }

浙公网安备 33010602011771号