js实现select二级联动下拉菜单
本文实例为大家分享了js实现select二级联动下拉菜单,供大家参考,具体内容如下
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<HTML>
<HEAD>
<TITLE>NewDocument</TITLE>
<METANAME="Generator"CONTENT="EditPlus">
<METANAME="Author"CONTENT="">
<METANAME="Keywords"CONTENT="">
<METANAME="Description"CONTENT="">
<scriptlanguage="JavaScript"type="text/javascript">
//定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组
varcity=[
["北京","天津","上海","重庆"],
["南京","苏州","南通","常州"],
["福州","福安","龙岩","南平"],
["广州","潮阳","潮州","澄海"],
["兰州","白银","定西","敦煌"]
];
functiongetCity(){
//获得省份下拉框的对象
varsltProvince=document.form1.province;
//获得城市下拉框的对象
varsltCity=document.form1.city;
//得到对应省份的城市数组
varprovinceCity=city[sltProvince.selectedIndex-1];
//清空城市下拉框,仅留提示选项
sltCity.length=1;
//将城市数组中的值填充到城市下拉框中
for(vari=0;i<provinceCity.length;i++){
sltCity[i+1]=newOption(provinceCity[i],provinceCity[i]);
}
}
</script>
</HEAD>
<BODY>
<FORMMETHOD=POSTACTION=""name="form1">
<SELECTNAME="province"onChange="getCity()">
<OPTIONVALUE="0">请选择所在省份</OPTION>
<OPTIONVALUE="直辖市">直辖市</OPTION>
<OPTIONVALUE="江苏省">江苏省</OPTION>
<OPTIONVALUE="福建省">福建省</OPTION>
<OPTIONVALUE="广东省">广东省</OPTION>
<OPTIONVALUE="甘肃省">甘肃省</OPTION>
</SELECT>
<SELECTNAME="city">
<OPTIONVALUE="0">请选择所在城市</OPTION>
</SELECT>
</FORM>
</BODY>
</HTML>
这段代码比较简单。
如果对js不大熟悉,可以看看下面关于js处理select对象的内容:
1、使用selectedIndex属性获取当前选项的索引
下拉框的选项是一个线性数组,每个选项都有一个索引,selectedIndex表示当前被选中的选项的索引号。结合options属性,可以得到被选中的option对象,从而对其做进一步的处理。当下拉框可多选时,selectedIndex属性返回第一个被选中的索引。
selectedIndex是个只读的属性,想把通过索引指定的下拉框的项设置为选中状态,可以设置option对象的selected=true来实现。
2、为select对象添加一个选项
sltCity[i+1]=newOption(provinceCity[i],provinceCity[i]);
newOption(provinceCity[i],provinceCity[i])表示创建一个值为provinceCity[i],文本为provinceCity[i]的option对象,sltCity是页面上的city对象,i+1指定新添选项的位置。
3、清空一个select对象
要将下拉框的所有选项删除有两种方法,
第一种方法就是遍历删除:
varl=myselect.length;
for(vari=0;i<l;i++){
myselect.options[i]=null;
}
第二种方法比较简单,因此一般都使用此方法:
myselect.length=0;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。