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 } }) })
时间: 2024-10-05 23:46:13