主要思路是通过二维数组citys[j][k]储存城市名,通过三维数组areas[g][f][e]储存区域名。j、g值与其省份的value相同,k与f值相同。具体实现如下所示:


<html>

<head>

   <meta http-equiv="content-type" content="text/html;charset=utf-8" />

   <title>三级联动</title>

   <script>

       var citys = new Array();

       var areas = new Array();

       citys[0]=  new Array("成都");

       citys[1] = new Array("广州","深圳");

       citys[2] = new Array("昆明");

       areas[0] = new Array();

       areas[1] = new Array();

       areas[2] = new Array();

       areas[0][0]=new Array("青羊","锦江","金牛","武侯","成华","龙泉驿","青白江","高新","金堂","新都","温江","郫","双流","新津","大邑","蒲江");

       areas[1][0]=new Array("荔湾","越秀","东山","天河","海珠","黄埔","芳村","白云","花都","番禺","广州经济技术开发","从化","增城","萝岗","清远","南沙","佛山");

       areas[1][1] = new Array("福田","罗湖","南山","盐田","宝安","龙岗");

       areas[2][0] = new Array("盘龙","五华","官渡","西山","安宁","呈贡","其他","东川");

       function changeproc(obj){

           if(obj.value==-1){

               var mycity=citys[obj.value];

               document.getElementById("city").options.length=0;

               document.getElementById("area").options.length=0;

               document.getElementById("area").options.add(new Option("--请选择区域--",-1));

               document.getElementById("city").options.add(new Option("--请选择城市--",-1));

               document.getElementById("myinfo").value="";

           }

           else{

               var mycity=citys[obj.value];

               document.getElementById("city").options.length=0;

               document.getElementById("area").options.length=0;

               document.getElementById("area").options.add(new Option("--请选择区域--",-1));

               document.getElementById("city").options.add(new Option("--请选择城市--",-1));

               for(var i = 0;i<mycity.length;i++){

                   document.getElementById("city").options.add(new Option(mycity[i],i));

               }

               document.getElementById("myinfo").value=obj.options[obj.selectedIndex].text+"省";

           }


       }

       function changecity(obj){

           if(obj.value==-1){

               var province = document.getElementById("mysel");

               document.getElementById("area").options.length=0;

               document.getElementById("area").options.add(new Option("--请选择区域--",-1));

               document.getElementById("myinfo").value = province.options[province.selectedIndex].text+"省";


           }else{

               var province = document.getElementById("mysel");

               document.getElementById("area").options.length=0;

               document.getElementById("area").options.add(new Option("--请选择区域--",-1));

               for(var i = 0;i<areas[province.value][obj.value].length;i++){

                   document.getElementById("area").options.add(new Option(areas[province.value][obj.value][i],i));

               }

               document.getElementById("myinfo").value = province.options[province.selectedIndex].text+"省"+obj.options[obj.selectedIndex].text+"市";


           }


       }

       function changearea(obj){

           var province = document.getElementById("mysel");

           var city = document.getElementById("city");

           if(obj.value==-1){

               document.getElementById("myinfo").value = province.options[province.selectedIndex].text+"省"+city.options[city.selectedIndex].text+"市" ;

           }else{


               document.getElementById("myinfo").value = province.options[province.selectedIndex].text+"省"+city.options[city.selectedIndex].text+"市"+obj.options[obj.selectedIndex].text+"区(县)";

           }


       }

   </script>

</head>

<body>

<form id="myform" action="#" method="post">

   省市区三级联动:<select name="mysel" id="mysel" οnchange="changeproc(this)">

   <option value="-1">--请选择省份--</option>

   <option value="0">四川</option>

   <option value="1">广东</option>

   <option value="2">云南</option>

</select>

   省

   <select name="city" id="city" οnchange="changecity(this)">

       <option value="-1">--请选择城市--</option>

   </select>

   市

   <select name="area" id="area" οnchange="changearea(this)">

       <option value="-1">--请选择区域--</option>

   </select>

   区(县)

   <br />

   <input id="myinfo" style="width: 300px"/>

</form>


</body>

</html>