猎酷网

JavaScript实现二级联动下拉框

2013-04-12 0人评论 720次浏览 分类:Js/Jquery特效

Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。

这个是简单也是最基本的联动下拉框的示例,这个示例主要针对那些只有二级联动,且第一级是固定的选项,第二级的内容也比较简单。这里使用了javascript来联动第二级下拉框 。

显示代码打印 

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">   
  2. <HTML>   
  3. <HEAD>   
  4. <TITLE> New Document </TITLE>   
  5. <META NAME="Generator" CONTENT="EditPlus">   
  6. <META NAME="Author" CONTENT="">   
  7. <META NAME="Keywords" CONTENT="">   
  8. <META NAME="Description" CONTENT="">   
  9. <script language="JavaScript" type="text/javascript">   
  10. //定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组  
  11. var city=[   
  12. ["北京","天津","上海","重庆"],   
  13. ["南京","苏州","南通","常州"],   
  14. ["福州","福安","龙岩","南平"],   
  15. ["广州","潮阳","潮州","澄海"],   
  16. ["兰州","白银","定西","敦煌"]   
  17. ];    
  18. function getCity(){   
  19. //获得省份下拉框的对象  
  20. var sltProvince=document.form1.province;   
  21. //获得城市下拉框的对象  
  22. var sltCity=document.form1.city;   
  23. //得到对应省份的城市数组  
  24. var provinceCity=city[sltProvince.selectedIndex - 1];   
  25. //清空城市下拉框,仅留提示选项  
  26. sltCity.length=1;   
  27. //将城市数组中的值填充到城市下拉框中  
  28. for(var i=0;i<provinceCity.length;i++){   
  29. sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);   
  30. }   
  31. }   
  32. </script>   
  33. </HEAD>   
  34. <BODY>   
  35. <FORM METHOD=POST ACTION="" name="form1">   
  36. <SELECT NAME="province" onChange="getCity()">   
  37. <OPTION VALUE="0">请选择所在省份 </OPTION>   
  38. <OPTION VALUE="直辖市">直辖市 </OPTION>   
  39. <OPTION VALUE="江苏省">江苏省 </OPTION>   
  40. <OPTION VALUE="福建省">福建省 </OPTION>   
  41. <OPTION VALUE="广东省">广东省 </OPTION>   
  42. <OPTION VALUE="甘肃省">甘肃省 </OPTION>   
  43. </SELECT>   
  44. <SELECT NAME="city">   
  45. <OPTION VALUE="0">请选择所在城市 </OPTION>   
  46. </SELECT>   
  47. </FORM>   
  48. </BODY>   
  49. </HTML>  

这段代码比较简单。

如果对js不大熟悉,可以看看下面关于js处理select对象的内容:

1、使用selectedIndex属性获取当前选项的索引
下拉框的选项是一个线性数组,每个选项都有一个索引,selectedIndex表示当前被选中的选项的索引号。结合options属性,可以得到被选中的option对象,从而对其做进一步的处理。当下拉框可多选时,selectedIndex属性返回第一个被选中的索引。 

selectedIndex是个只读的属性,想把通过索引指定的下拉框的项设置为选中状态,可以设置option对象的selected=true来实现。

2、为select对象添加一个选项

显示代码打印 

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

表示创建一个值为provinceCity[i],文本为provinceCity[i]的option对象,sltCity是页面上的city对象,i+1指定新添选项的位置。

3、清空一个select对象

要将下拉框的所有选项删除有两种方法,第一种方法就是遍历删除:

显示代码打印

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

第二种方法比较简单,因此一般都使用此方法:

显示代码打印

  1. myselect.length=0;  

通过本文的介绍,希望能给你带来帮助。关于其他下拉框联动的问题,将在后续章节中继续介绍,敬请关注。


顶一下
(0)
0%
踩一下
(0)
0%

发表评论共有0访客发表了评论

    暂无评论,快来抢沙发吧!

我来说几句吧

验证码: 看不清楚?