<script language="JavaScript">
<!--
function initialize()
{
for(i=1980;i<2060;i++)
with(document.form1.elements["sYear"])
options[length] = new Option(i,i);
for(i=1;i<=12;i++)
with(document.form1.elements["sMonth"])
options[length] = new Option(i,i);
for(i=1;i<=31;i++)
with(document.form1.elements["sDay"])
options[length] = new Option(i,i);
}
function change(y,m,d)
{
var yy = y.value;
var mm = [31,28,31,30,31,30,31,31,30,31,30,31];
mm[1] = ((yy%4 == 0) && (yy%100 != 0) || (yy%400 == 0))? 29: 28;
var dd = mm[m.selectedIndex];
if (dd < d.length)
{
while(dd!=d.length)d.removeChild(d.lastChild);
}
else
while(dd!=d.length)d.options[d.length]=new Option(d.length+1,d.length+1);
}
window.onload = initialize;//-->
</script>
<form name=form1>
<select name="sYear" onchange="change(this,sMonth,sDay)"></select>
<select name="sMonth" onchange="change(sYear,this,sDay)"></select>
<select name="sDay"></select>
</form>

解决方案 »

  1.   

    http://www.51windows.net/hw/asp/jsview.asp?id=352
      

  2.   

    给你源码,还带星期几的:
    <html>
    <head>
    <title>下拉菜单选择日期</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <script>
    var arr="日一二三四五六".split("");
    function toDate(){
    with(document.all){
    vYear=parseInt(year.value)
    vMonth=parseInt(month.value)
    for(i=1;i<=(new Date(vYear,vMonth,0)).getDate();i++)
    {day.options.add(new Option(i));
    }
    }
    today();}
    function today(){
    vDay=f1.day.value;
    document.f1.t1.value="星期"+arr[new Date(vYear,vMonth-1,vDay).getDay()];}
    </script>
    <body onLoad="toDate()">
    <form name="f1">
    <select id=year onchange=toDate()>
    <script>
    dt=new Date();
    yr=dt.getYear();
    for(i=1970;i<=yr;i++){
        document.write("<option value="+i+">"+i+"</option>");
        }
    </script>
    </select>年
    <select id=month onchange=toDate()>
    <script>
    for(i=1;i<=12;i++){
        document.write("<option value="+i+">"+i+"</option>");
        }
    </script>
    </select>月
    <select id=day onChange="today()"></select>日
    <input name=t1>
    </form>
    </body>
    </html>
      

  3.   

    不好意思贴错了,那个是没有改过的试验品,这个才是成品:<html>
    <head>
    <title>下拉菜单选择日期</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <script>
    var arr="日一二三四五六".split("");
    function toDate(){
    with(document.all){
    vYear=parseInt(year.value)
    vMonth=parseInt(month.value)
    day.length=0
    for(i=1;i<=(new Date(vYear,vMonth,0)).getDate();i++)
    {day.options.add(new Option(i,i));
    }
    }
    today();}
    function today(){
    with(document.all){
    vDay=parseInt(day.value);
    t1.value="星期"+arr[new Date(vYear,vMonth-1,vDay).getDay()];}}
    </script>
    <body onLoad="toDate()">
    <form name="f1">
    <select id=year onchange=toDate()>
    <script>
    dt=new Date();
    yr=dt.getYear();
    for(i=1970;i<=yr;i++){
        document.write("<option value="+i+">"+i+"</option>");
        }
    </script>
    </select>年
    <select id=month onchange=toDate()>
    <script>
    for(i=1;i<=12;i++){
        document.write("<option value="+i+">"+i+"</option>");
        }
    </script>
    </select>月
    <select id=day onChange=today()></select>日
    <input id=t1>
    </form></body>
    </html>