Dynamic Menus
有时往往需要根据一个表单设置另一个表单,比如根据国家设置省份,这里是根据月份设置天数的例子。
这是相关的HTML代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Dynamic Menus</title> 5 <script src="p6_2.js"></script> 6 </head> 7 <body> 8 <form action="#"> 9 <select id="months"> 10 <option value="">Month</option> 11 <option value="0">January</option> 12 <option value="1">February</option> 13 <option value="2">March</option> 14 <option value="3">April</option> 15 <option value="4">May</option> 16 <option value="5">June</option> 17 <option value="6">July</option> 18 <option value="7">August</option> 19 <option value="8">September</option> 20 <option value="9">October</option> 21 <option value="10">November</option> 22 <option value="11">December</option> 23 </select> 24 25 26 <select id="days"> 27 <option>Day</option> 28 </select> 29 30 </form> 31 32 </body> 33 </html>
以下是相关的js代码:
1 window.onload = initForm; 2 3 function initForm(){ 4 5 document.getElementById("months").selectedIndex = 0; 6 document.getElementById("months").onchange = getDays;//菜单变化时调用getDays()函数 7 8 } 9 10 function getDays(){ 11 12 var monthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);//创建一个数组用于存储每月所对应的天数 13 var monthStr = this.options[this.selectedIndex].value//由菜单属性selectedIndex得到相应的Options即月份 14 15 16 if(monthStr!=""){ //判断是否选择了月份 17 var theMonth = parseInt(monthStr); 18 document.getElementById("days").length = 0;//重置Days菜单 19 for(var i=0;i<monthDays[theMonth];i++){ //根据选择的月份得到对应的天数再用for循环创建对应的Days表单 20 document.getElementById("days").options[i] = new Option(i+1); 21 } 22 } 23 }
应该去学习selectedIndex的使用,可以通过 document.getElementById("days").options[i] = new Option(i+1);创建菜单的选项。

浙公网安备 33010602011771号