JS实现下拉列表的二级联动

这个是简单也是最基本的下拉框联动的示例,这个示例主要针对那些只有二级联动,且第一级是固定的选项,第二级的内容也比较简单,不刷新的联动,动态的联动须要检索数据库,这个对不须要更新的二级联动比较实用。这里使用了javascript来联动第二级下拉框。javascript

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>java

<%数据库

String path = request.getContextPath();数组

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";spa

%>orm


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">对象

<HTML>索引

 <HEAD>ip

 <TITLE> New Document </TITLE>ci

 <META NAME="Generator" CONTENT="EditPlus">

 <META NAME="Author" CONTENT="">

 <META NAME="Keywords" CONTENT="">

 <META NAME="Description" CONTENT="">

 <script language="JavaScript" type="text/javascript">

   //定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。经过selectedIndex得到省份的下标值来获得相应的城市数组

   var city=[

   ["北京","天津","上海","重庆"],

   ["南京","苏州","南通","常州"],

   ["福州","福安","龙岩","南平"],

   ["广州","潮阳","潮州","澄海"],

   ["兰州","白银","定西","敦煌"]

   ];


   function getCity(){

     //得到省份下拉框的对象

     var sltProvince=document.form1.province;

     //得到城市下拉框的对象

     var sltCity=document.form1.city;      

     //获得对应省份的城市数组

     var provinceCity=city[sltProvince.selectedIndex - 1];

 

     //清空城市下拉框,仅留提示选项

     sltCity.length=1;

 

     //将城市数组中的值填充到城市下拉框中

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

       sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);

     }

   }

 </script>

 </HEAD>

 

 <BODY>

 <FORM METHOD=POST ACTION="" name="form1">

     <SELECT NAME="province" onChange="getCity()">

       <OPTION VALUE="0">请选择所在省份 </OPTION>

       <OPTION VALUE="直辖市">直辖市 </OPTION>

       <OPTION VALUE="江苏省">江苏省 </OPTION>

       <OPTION VALUE="福建省">福建省 </OPTION>

       <OPTION VALUE="广东省">广东省 </OPTION>

       <OPTION VALUE="甘肃省">甘肃省 </OPTION>

     </SELECT>

     <SELECT NAME="city">

       <OPTION VALUE="0">请选择所在城市 </OPTION>

     </SELECT>

   </FORM>

 </BODY>

</HTML>

这段代码比较简单。

若是对js不大熟悉,能够看看下面关于js处理select对象的内容:

一、使用selectedIndex属性获取当前选项的索引
下拉框的选项是一个线性数组,每一个选项都有一个索引,selectedIndex表示当前被选中的选项的索引号。结合options属性,能够获得被选中 的option对象,从而对其作进一步的处理。当下拉框可多选时,selectedIndex属性返回第一个被选中的索引。
selectedIndex是个只读的属性,想把经过索引指定的下拉框的项设置为选中状态,能够设置option对象的selected=true来实现。

二、为select对象添加一个选项
sltCity[i+1]=newOption(provinceCity[i],provinceCity[i]);
newOption(provinceCity[i],provinceCity[i])表示建立一个值为provinceCity[i],文本为provinceCity[i]的option对象,sltCity是页面上的city对象,i+1指定新添选项的位置。

三、清空一个select对象
要将下拉框的全部选项删除有两种方法,
第一种方法就是遍历删除:

1var l=myselect.length;
2 for(var i=0;i<l;i++){
3myselect.options[i]=null;
4 }


第二种方法比较简单,所以通常都使用此方法:

myselect.length=0;

相关文章
相关标签/搜索