by 清泉
17. 十月 2008 10:55
都怪自己平时学习不用功,一个简单的二级联运JS自己都不会写,昨天要搞一个二级联动的JS,自己还去查百度,翻谷歌,找蓝色理想,功夫不负有心人,总算找到一个功能不错且简单的二级联动JS,一看就懂。在此留下记录,下次再做二级联动的时候就不要再去搜索了。
这个二级联动有一个小bug,如果别的选项的二级只有一个选项,那他有时候可能会出问题,要自己添加一个判断来执行option选项删除。
如果想查看如何删除option的选项,请移步:添加与删除Option对象,如果是想查看删除所有option选项,请查看:使用js删除所有option选项
下面是二级联运JS的源文件:
<html>
<head>
<title>This is a test!</title>
</head>
<body>
<form name="frm">
<select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">
<option selected>请选择</option>
<option value="1">脚本语言</option>
<option value="2">高级语言</option>
<option value="3">其他语言</option>
</select>
<select name="s2">
<option value="请选择" selected>请选择</option>
</select>
</form>
<script language="javascript">
//获取一级菜单长度
var select1_len = document.frm.s1.options.length;
var select2 = new Array(select1_len);
//把一级菜单都设为数组
for (i=0; i<select1_len; i++)
{ select2[i] = new Array();}
//定义基本选项
select2[0][0] = new Option("请选择", " ");
select2[1][0] = new Option("PHP", " ");
select2[1][1] = new Option("ASP", " ");
select2[1][2] = new Option("JSP", " ");
select2[2][0] = new Option("C/C++", " ");
select2[2][1] = new Option("Java", " ");
select2[2][2] = new Option("C#", " ");
select2[3][0] = new Option("Perl", " ");
select2[3][1] = new Option("Ruby", " ");
select2[3][2] = new Option("Python", " ");
//联动函数
function redirec(x)
{
var temp = document.frm.s2;
for (i=0;i<select2[x].length;i++)
{ temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);}
temp.options[0].selected=true;
}
</script>
</body>
</html>