当前位置: 代码迷 >> Web前端 >> 简略二级级联菜单的实现
  详细解决方案

简略二级级联菜单的实现

热度:178   发布时间:2012-10-06 17:34:01.0
简单二级级联菜单的实现

级联下拉菜单就是从一个下拉菜单中选中一项后,相应的另一个下拉菜单的内容会随之改变。

?

代码一:使用函数createProvince()加载第一列表框中的值,onchange属性加载相应的第二个列表框中的值

<html> 
<head> 
  <title> new document </title> 
<script language="javascript"> 
  function createProvince(){ 
      var provinces = ['--请选择省份--','北京市', '福建省', '湖北省'];     //所有省份的数组 
    var province=document.myform.province; 	//获取文档中省份这个列表框元素对象 
    for(var i = 0; i < provinces.length; i++){ 
        province.options.add(new Option(provinces[i], provinces[i]));     //往省份的选项组中添加选项 
	} 
  } 

  function createcity(){ 
	var citylist = new Array(); 
	citylist['--请选择省份--'] = ['--请选择城市--']; 
    citylist['北京市'] = ['东城区', '西城区', '海淀区', '朝阳区', '大兴区', '昌平区', '怀柔']; 
	citylist['福建省'] = ['福州市', '厦门市', '泉州市', '龙岩市', '三明市']; 
    citylist['湖北省'] = ['武汉', '宜昌', '襄樊', '黄石', '黄冈', '十堰']; 
	//获得选中的省份值 
	var selectedProv=document.myform.province.value; 
	var cityOption; 
	//清空城市列表框中原来的所有选项 
	document.myform.city.options.length=0;
	//添加对应省份的所有城市 
	for (var city = 0; city < citylist[selectedProv].length; city++) { 
		cityOption = new Option(citylist[selectedProv][city], citylist[selectedProv][city]);         //构造选项 
		document.myform.city.options.add(cityOption); 
     } 
  } 
</script> 
</head> 

<body onload="createProvince()"> 
<form name="myform" > 
  <select name="province" id="province" onchange="createcity()"> 
  </select> 
  <select name="city" id="city"> 
      <option>--请选择城市--</option> 
  </select> 
</form> 
</body> 
</html> 

?代码2.直接将值写入第一个列表框,用函数createcity()加载相应的第二个列表框中的值

<html> 
<head> 
  <title> 级联菜单测试2 </title> 
<script language="javascript"> 
  function createcity(){ 
	var citylist = new Array(); 
	citylist['--请选择省份--'] = ['--请选择城市--']; 
    citylist['北京市'] = ['东城区', '西城区', '海淀区', '朝阳区', '大兴区', '昌平区', '怀柔']; 
	citylist['福建省'] = ['福州市', '厦门市', '泉州市', '龙岩市', '三明市']; 
    citylist['湖北省'] = ['武汉', '宜昌', '襄樊', '黄石', '黄冈', '十堰']; 
	//获得选中的省份值 
	var selectedProv=document.myform.province.value;   //value值,只能是option中的value属性值,与<option></option>中的值没有关系,其只作为一个文本内容来显示,而不作为有效的参数。
	var cityOption; 
	//清空城市列表框中原来的所有选项 
	document.myform.city.options.length=0;
	//添加对应省份的所有城市 
	for (var city = 0; city < citylist[selectedProv].length; city++) { 
		cityOption = new Option(citylist[selectedProv][city], citylist[selectedProv][city]);         //构造选项 
		document.myform.city.options.add(cityOption);
     } 
  } 
</script> 
</head> 

<body onload="createProvince()"> 
<form name="myform" > 
  <select name="province" id="province" onchange="createcity()"> 
    <option value="--请选择省份--">--请选择省份--</option>
	<option value="北京市">北京市</option>
	<option value="福建省">福建省</option>
	<option value="湖北省">湖北省</option>
  </select> 
  <select name="city" id="city"> 
      <option>--请选择城市--</option> 
  </select> 
</form> 
</body> 
</html> 

?

通过以上的对比可以发现,<option value=“value”></option>标签中的文本只是作为文本显示,而有效的参数值是value属性的值。

?

?

?

?

?

?

?

?

  相关解决方案