html内容
<select name="year" id="year"> <option value="0">--</option> <option value="1999">1999</option> <option value="2000">2000</option> <option value="2001">2001</option> </select>年 <select name="month" id="month"> <option value="0">--</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option>
<option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> </select>月 <select name="date" id="date"> <option value="0">--</option> </select> <p id="d"></p>
思路1:做监听事件。需要写出计算出用已选择的年份和月份来计算出天数的Function,再做循环在id为date的表内添加option为日期;
思路2:为id为year的做监听事件,用selectindex=“”的方式来将date和month值为所选项(0)
思路3:为id为month做监听事件,同是使用Selectindex=""的方式将date为初始化状态.
首先做监听事件获取到所选择的值:
year.addEventListener(‘change‘, function () {
month.selectedIndex = 0;//将月份初始化
date.selectedIndex = 0;//将日期初始化
var yearval = year.value; //获取到的value赋值给yearval
month.addEventListener(‘change‘, function () { //由于需要将year下month,date的设置成初始化,所以要在year下设置监听事件
date.selectedIndex = 0;
var monthval = month.value;//略
//以上将可以获取到year和month的值。接下来创建计算天数的function
function getDays(year, month) {//计算天数function,使用0来取最后 一天的值
var date = new Date(year, month, 0);
return date.getDate();//最后传出得出的天数
}
var days = getDays(yearval, monthval);//代入计算赋值给days,获取到了天数接下来的思路是用for循环创建option*天数
console.log(days);
//for循环days添加option
for (var i = 1; i < days; i++) {
console.log(days);
var option = document.createElement(‘option‘);
date.appendChild(option);
date[i].innerText = i;//用i++的方式循环i中的数值
date[i].value = i
}
})
})
使用year,month获取date.length并带入select
原文:http://www.cnblogs.com/sakurashadow/p/5328905.html