Javascript 根据所选月份获取天数

Javascript 根据所选月份获取天数,javascript,jquery,date,Javascript,Jquery,Date,我有一个带有3个下拉框的基本表单 <form> <select name="year" id="y"> <option value="2014">2014</option> ... <option value="1949">1949</option> </select> <select name="month" id="m"> <option value="01">JAN</opti

我有一个带有3个下拉框的基本表单

<form>
<select name="year" id="y">
<option value="2014">2014</option>
...
<option value="1949">1949</option>
</select>
<select name="month" id="m">
<option value="01">JAN</option>
...
<option value="12">DIC</option>
</select>
<select name="day" id="d">
<option value="1">1</option>
...
<option value="31">31</option>
</select>
<input type="text" name="age">
</form>

2014
...
1949
简
...
DIC
1.
...
31
因此,我们的想法是: 获取月份,以便可以填充天的选择选项,1,2,3,4,5。。。等等一旦我有了年、月和日,我需要进行计算,以便获得年龄,计算的值/结果将进入年龄输入框。。。 现在,因为年龄必须不少于1岁,不超过69岁或70岁,我已经做到了…:

function getYears()
    {
        d = new Date();
        curr_year = d.getFullYear();

        for(i = 0; i < 70; i++)
        {
            document.getElementById('y').options[i] = new Option(curr_year-i,curr_year-i);
        }
    }
函数getYears() { d=新日期(); curr_year=d.getFullYear(); 对于(i=0;i<70;i++) { document.getElementById('y')。选项[i]=新选项(curr_year-i,curr_year-i); } } 有了这些代码,我就可以填充今年的选项了。。。在下一个代码中,我可以得到每月所选的天数,但无法工作

它不起作用,因为如果我选择一月,它将在天中显示31天,但是如果我再更改一个月,它将继续显示从第一次选择开始的月数

function obtenDias(v) {
    var select = document.getElementById("d");
    switch(v)
    {
        case "01":  ed = 31;break;
        case "02":  ed = 29;break;
        case "03":  ed = 31;break;
        case "04":  ed = 31;break;
        case "05":  ed = 31;break;
        case "06":  ed = 31;break;
        case "07":  ed = 31;break;
        case "08":  ed = 31;break;
        case "09":  ed = 31;break;
        case "10":  ed = 31;break;
        case "11":  ed = 31;break;
        case "12":  ed = 31;break;
    }
    for(i=1;i<=ed;i++)
    {
        select.options[i] = new Option(i, i, true, false);
    }
}
函数obtenDias(v){
var select=document.getElementById(“d”);
开关(v)
{
案例“01”:ed=31;断裂;
案例“02”:ed=29;断裂;
案例“03”:ed=31;中断;
案例“04”:ed=31;中断;
案例“05”:ed=31;断裂;
案例“06”:ed=31;中断;
案例“07”:ed=31;中断;
案例“08”:ed=31;中断;
案例“09”:ed=31;中断;
案例“10”:ed=31;中断;
案例“11”:ed=31;中断;
案例“12”:ed=31;中断;
}

对于(i=1;i,这是因为您没有清除旧选项

因此,对于一月选择,您创建了31个选项项。但是对于二月选择,您正在更新29个选项,仍然保留第30个和第31个选项项。因此,在重新填充之前,请删除额外选项或仅删除所有选项

在重新填充选项列表几天之前,请尝试以下操作:

while(select.options.length > 0){
    selection.options.remove(0);
}

很好,我知道我必须这样做,就像在php中重置变量一样…现在我需要计算年龄…谢谢。它将返回特定月份和年份的天数******函数daysInMonth(month,year){var dd=new Date(year,month,0);返回dd.getDate();}****