为什么选月份的时候日期列表永远是31?

MonthJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberDay function initForm(){ monthsId = document.getElementById("months"); monthsId.selectedIndex = 0;//显示Month monthsId.onchange = createDays; } function createDays(){ var optionValue = monthsId.options[monthsId.selectedIndex].value; var monthsArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31); var days = monthsArray[optionValue]; for(var i=0;i<days;i++){ daysId = document.getElementById("days"); daysId.options[i+1] = new Option(i+1); } } window.onload=initForm;

为什么选月份的时候日期列表永远是31?

[code="java"]for(var i=0;i<days;i++){
daysId = document.getElementById("days");
daysId.options[i+1] = new Option(i+1);
} [/code]

修改为

[code="java"]daysId = document.getElementById("days");
daysId.options.length=1;
for(var i=0;i<days;i++){
daysId.options[i+1] = new Option(i+1);
} [/code]

因为你没有重新设置options的数组,所以会以最大的显示