还是老规矩,先来看下效果图:
图1:
图2:
图3:
图4:
这就省份等常见的级联下拉列表框的原型;下面来看看代码的构成
<html> <head> <meta charset="UTF-8"> <title>标题</title> <script language="JavaScript" type="text/javascript" src="js/jquery-1.8.2.min.js"></script> <style> body{ font-size: 13px; } .clsInit{ width: 435px; height: 35px; line-height: 35px; padding-left: 10px; } .divTip{ padding-top: 5px; background-color: #eee; display: none; } .btn{ border: #666 1px solid; padding: 2px; width: 65px; float: right; margin-top: 6px; margin-right: 6px; } </style> <script type="text/javascript"> $(function(){ function objInit(obj){ return $(obj).html("<option>选择请</option>"); } var arrData = { 厂商1: { 品牌1_1: "型号1_1_1,型号1_1_2", 品牌1_2: "型号1_2_1,型号1_2_2" }, 厂商2: { 品牌2_1: "型号2_1_1,型号2_1_2", 品牌2_2: "型号2_2_1,型号2_2_2" }, 厂商3: { 品牌3_1: "型号3_1_1,型号3_1_2", 品牌3_2: "型号3_2_1,型号3_2_2" } }; $.each(arrData,function(pF){//遍历数据增加厂商项 $("#selF").append("<option>"+pF+"</option>"); }); $("#selF").change(function(){//厂商列表框选项改变事件 objInit("#selT"); objInit("#selC"); $.each(arrData,function(pF,pS){ if($("#selF option:selected").text()==pF){//如果厂商选中项与数据匹配 $.each(pS,function(pT,pC){//遍历数据增加品牌项 $("#selT").append("<option>"+pT+"</option>"); }); $("#selT").change(function(){//品牌列表框选项改变事件 objInit("#selC"); $.each(pS,function(pT,pC){ if($("#selT option:selected").text()==pT){//如果品牌选中项与数据匹配 $.each(pC.split(","),function(){//遍历数据增加型号项 $("#selC").append("<option>"+this+"</option>"); }); } }); }); } }); }); $("#Button1").click(function() { //注册按钮单击事件 var strValue = "您选择的厂商:"; strValue += $("#selF option:selected").text(); strValue += " 您选择的品牌:"; strValue += $("#selT option:selected").text(); strValue += " 您选择的型号:"; strValue += $("#selC option:selected").text(); $("#divTip") .show() .addClass("clsTip") .html(strValue); //显示提示信息并增加样式 }); }) </script> </head> <body> <div class="clsInit"> 厂商:<select id="selF"><option>请选择</option></select> 品牌:<select id="selT"><option>请选择</option></select> 型号:<select id="selC"><option>请选择</option></select> <input id="Button1" type="button" value="查询" class="btn" /> </div> <div class="divTip" id="divTip"></div> </body> </html>