JAVA涂鸦
关于JAVA的点点滴滴
posts - 50,  comments - 689,  trackbacks - 0
    这个是简单也是最基本的下拉框联动的示例,这个示例主要针对那些只有二级联动,且第一级是固定的选项,第二级的内容也比较简单。这里使用了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 
19     function getCity(){
20         //获得省份下拉框的对象
21         var sltProvince=document.form1.province;
22         //获得城市下拉框的对象
23         var sltCity=document.form1.city;
24         
25         //得到对应省份的城市数组
26         var provinceCity=city[sltProvince.selectedIndex - 1];
27 
28         //清空城市下拉框,仅留提示选项
29         sltCity.length=1;
30 
31         //将城市数组中的值填充到城市下拉框中
32         for(var i=0;i<provinceCity.length;i++){
33             sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);
34         }
35     }
36 </script>
37 </HEAD>
38 
39 <BODY>
40 <FORM METHOD=POST ACTION="" name="form1">
41         <SELECT NAME="province" onChange="getCity()">
42             <OPTION VALUE="0">请选择所在省份 </OPTION>
43             <OPTION VALUE="直辖市">直辖市 </OPTION>
44             <OPTION VALUE="江苏省">江苏省 </OPTION>
45             <OPTION VALUE="福建省">福建省 </OPTION>
46             <OPTION VALUE="广东省">广东省 </OPTION>
47             <OPTION VALUE="甘肃省">甘肃省 </OPTION>
48         </SELECT>
49         <SELECT NAME="city">
50             <OPTION VALUE="0">请选择所在城市 </OPTION>
51         </SELECT>
52     </FORM>
53 </BODY>
54 </HTML>
55 

这段代码比较简单。

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

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

2、为select对象添加一个选项
    sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);
   
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 }

    第二种方法比较简单,因此一般都使用此方法:
myselect.length=0;



posted on 2006-08-20 13:13 千山鸟飞绝 阅读(35351) 评论(22)  编辑  收藏 所属分类: JavaScript

FeedBack:
# re: javascript实现二级联动下拉框
2008-05-09 15:01 | 123
原来是个死的  回复  更多评论
  
# re: javascript实现二级联动下拉框
2008-07-15 16:24 | willem
真好用。非常感谢您的分享!!  回复  更多评论
  
# re: javascript实现二级联动下拉框
2009-10-14 17:16 | ss
你这个不是动态的啊   回复  更多评论
  
# re: javascript实现二级联动下拉框
2009-12-24 14:15 | fgvt6
这是动态的呀,怎么不是动态的?
你是不是没有把前面的数据没去掉?  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-01-14 16:45 | 小程序员
我就纳闷了。楼上的几位。
人家搂住都说了这个程序适合少量数据
无刷新的连动,代码也贴出来了。
当然不是动态的了。
动态的一定要检索数据库。
这个对一些不需要更新的二级连动很实用。
不错的例子。找了好几个小时了。 谢谢楼主。  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-02-07 13:45 | sglznc
楼上有理。楼主的东东很不错,稍微修改一下就可以用数据库的哇。顶。  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-02-08 09:54 | sglznc
要用数据库,只要把数据库的内容通过字符串相加凑成数组格式就可以了。再次感谢楼主。  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-05-14 10:23 | re
gg  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-05-27 17:19 | zhoupeng
google浏览器不兼容  回复  更多评论
  
# re: javascript实现二级联动下拉框[未登录]
2010-05-31 11:09 |
完美 lz太帅了  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-06-09 18:03 | 寻者
将每行前面的数字拿掉就可以运行了,非常好,谢谢楼主
  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-06-17 15:28 | 天地悠悠
这是我见过的最简洁的例子,楼主辛苦了,强烈支持!  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-07-29 11:06 | 工工
一楼三楼有够二的,, 呵呵 谢谢楼主啊~~  回复  更多评论
  
# re: javascript实现二级联动下拉框
2010-09-27 18:22 | 天和
将这里改成下面这样是不是更完美一点,否则在选择 "省份" 默认时会报错(我是在FF中测试的)

//将城市数组中的值填充到城市下拉框中
if (sltProvince.value!=0){
for(var i=0;i<provinceCity.length;i++){
sltCity[i+1]=new Option(provinceCity[i],i+1);
}
}

  回复  更多评论
  
# re: javascript实现二级联动下拉框
2011-01-06 17:13 | qq9126206
为什么添加点内容后
在二级菜单上面不现实?  回复  更多评论
  
# re: javascript实现二级联动下拉框[未登录]
2011-04-02 16:15 | 过客
妈的,看来看去都是转载过来的,没一个能用!看来看去都是同一个!  回复  更多评论
  
# re: javascript实现二级联动下拉框[未登录]
2011-04-11 11:11 | 过客
@过客
您牛,您原创一个能用的啊!
楼主只是给个例子,当然要自己修改来符合自己的要求了,你还想直接用啊!!!  回复  更多评论
  
# re: javascript实现二级联动下拉框
2012-07-04 16:53 | 哇哦
我找的就不是动态的、动态的有鬼用、知道这基本原理就ok了  回复  更多评论
  
# re: javascript实现二级联动下拉框
2012-11-07 13:50 | yu2n
//将城市数组中的值填充到城市下拉框中
if (sltProvince.selectedIndex == "0"){
sltCity.selectedIndex = 0;
} else {
for(var i=0;i<provinceCity.length;i++){
sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);
}
}  回复  更多评论
  
# re: javascript实现二级联动下拉框
2013-04-26 00:07 | 席建月
很好,慢慢学习  回复  更多评论
  
# re: javascript实现二级联动下拉框
2014-07-30 12:46 | cesd
@cesd
cccccccc  回复  更多评论
  
# re: javascript实现二级联动下拉框
2015-12-12 10:48 | 精神病
太棒了 好东西就该这样  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
正在阅读:



<2015年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(35)

随笔档案

文章分类

文章档案

好友的blog

我的其他blog

老婆的Blog

搜索

  •  

积分与排名

  • 积分 - 771216
  • 排名 - 55

最新评论

阅读排行榜

评论排行榜