select使用js实现简单2级联动 多级联动
对于需要实现省、市选择类的二级关联选择联动的,就需要用到这个功能
首先,在select中,value和text的区别在于:value是客户看不见的值;而text是客户可以看见的值。也就是说二级联动(比如常见的选择不同的省份有不同的地区)是在你改变了省份之后,触发事件,传递对应的value给第二级,第二级的select根据你传递的value改变了自己的text值。以此类推,向下传递。
好了上代码!
<!doctype html> <html> <head> <meta charset="utf-8"> <title>联动</title> </head> <body> <select id="s1" onChange="move()"> <!-- 根据id获取value,onchange()触发函数move()修改二级select的text值实现联动 --> <option selected value="s1">-- 请选择 --</option> <!--默认选中--> <option value="SC">SC</option> <option value="BJ">BJ</option> <option value="TJ">TJ</option> </select> <select id="s2"> <option selected>-- 请选择 --</option> <!--默认选中,动态生成option --> </select> <script> function move() { var s1=document.getElementById("s1"); var s2=document.getElementById("s2"); <!-- 获取一级和二级的属性--> var add; if(s1.value=="SC") { add=new Array("CD","DZ","MY","NC"); <!--比对value值,实现对应二级text值的动态生成--> }else if(s1.value=="BJ") { add=new Array("HD","CY","WFJ"); <!--比对value值,实现对应二级text值的动态生成--> }else if(s1.value=="TJ") { add=new Array("TJG","TJ","TJY"); <!--比对value值,实现对应二级text值的动态生成--> }else if(s1.value=="s1") { add=new Array("请选择"); } else { add=null; <!--若没有就为空,当然不可能出现的--> } s2.length=0; for(var i=0;i<add.length;i++) { var ss=new Option(); ss.text=add[i].split()[0]; s2.add(ss); <!--把text值添加到二级select中,显示出来--> } } </script> </body> </html>
效果如下:
默认:
选择BJ:
选择“请选择”:
完事,如果想都多级联动以此类推。(比如国家,省份,地区等等)
顶(3)
踩(0)
- 最新评论