此实例是一个简单的二级联动,第一个列表中的值为固定的,第二个列表中的值随着第一个列表值的变化而变化,即第一个列表影响第二个列表。
实现思路:先写两个<select>标签,用name或id来区分;写一个二维数组来存放信息;在一级菜单中使用onchange()事件来动态加载二级菜单的内容。
完整代码
<html> <head> <meta charset="UTF-8"> <title>简单城市二级联动</title> </head> <body> <form action="" method="post"> <div> <select οnchange="selectCity()"> <option value="">请选择省份</option> <option value="">山西省</option> <option value="">陕西省</option> <option value="">江西省</option> <option value="">四川省</option> </select> </div> <div> <select> <option value="0">请选择市区</option> </select> </div> </form> </body> <script type="text/javascript" language="javascript"> var cityInfo = [["请选择市区","太原市","吕梁市","临汾市","运城市","阳泉市"], ["请选择市区","西安市","咸阳市","汉中市","延安市","榆林市"], ["请选择市区","南昌市","九江市","鹰潭市","上饶市","景德镇市"], ["请选择市区","成都市","绵阳市","雅安市","乐山市","眉山市"]]; /*二级联动一般使用onchange事件*/ function selectCity(){ /*获取省份下拉框的对象*/ var pro = document.form1.sltProvince; /*获取市区下拉框的对象*/ var cit = document.form1.sltCity; /*得到对应得城市数组,selectedIndex表示下拉框列表的索引值*/ var selectParam = cityInfo[pro.selectedIndex-1]; /*将城市列表的选项只留下第一个提示选项*/ cit.length = 1; for(var i=0;i<selectParam.length;i++){ /*第一个selectParam[i]表示城市option中的value值,第二个selectParam[i]表示文本信息*/ cit[i] = new Option(selectParam[i],selectParam[i]); } } </script> </html>
希望对大家有所帮助!