快捷搜索:   nginx

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>


效果如下: 

默认:
1.jpg 
选择BJ: 
2.jpg 
选择“请选择”: 
3.jpg 
完事,如果想都多级联动以此类推。(比如国家,省份,地区等等) 
4.jpg 

顶(3)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论