<!DOCTYPE HTML><html> <head> <title>年月日</title> <script type="text/javascript"> function one(){ //创建年 var year=document.getElementById('year'); var date=new Date(); for(var i=1900;i<=date.getFullYear();i++){ var y=document.createElement("option"); y.innerText=i; year.appendChild(y); } //创建月 var month=document.getElementById("month"); for(var i=1;i<=12;i++){ var m=document.createElement("option"); m.innerText=i; month.appendChild(m); } //创建日 var day=document.getElementById("day"); var run=0; var ye=parseInt(year.value); var mo=parseInt(month.value); switch(mo){case 1:case 3:case 5:case 7:case 8:case 10:case 12: run=3; break; case 4:case 6:case 6:case 11: run=2; break; case 2: if(ye%4==0&&ye%100!=0||ye%400==0){ run=1; break; } } for(var i=1;i<=28+run;i++){ var d=document.createElement("option"); d.innerText=i; day.appendChild(d); } } </script> </head> <body onLoad="one()"> <table> <tr> <td> <select id="year"> </select> </td> <td> <select id="month"> </select> </td> <td> <select id="day"> </select> </td> </tr> </table> </body></html>
2 回答
李晓健
TA贡献1036条经验 获得超461个赞
因为你一进来就是1月呀 所以就会是31天,然后就不会再变了
你可以试下这样,当年和月改变时再生成一次
<body onLoad="one()"> <table> <tr> <td> <select id="year" onchange="one()"> </select> </td> <td> <select id="month" onchange="one()"> </select> </td> <td> <select id="day"> </select> </td> </tr> </table> </body>
添加回答
举报
0/150
提交
取消