Javascript 根据所选月份获取天数
我有一个带有3个下拉框的基本表单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
<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();}****