js 级联select

<SELECT ID="s1">
    <OPTION selected>请选择地区</OPTION>
</SELECT>
<SELECT ID="s2">
  <OPTION selected>请选择城市</OPTION>
</SELECT>  
<SELECT ID="s3">
  <OPTION selected>请选择镇</OPTION>
</SELECT>  
<script src="./jquery1.8.0.min.js"></script>
<script language="javascript" >
  function CLASS_LIANDONG_YAO()
  {
    this.obj = '';
    this.firstOne = ''; //第一个展示的option名字
    //设置第一个SELECT
    // 参数:indexName指选中项,selectName指select的ID,changeId选中的id
    this.firstSelectChange=function(parentValue,selectName,array_list,firstOne,changeId)
    {
      this.obj=document.all[selectName];
      this.firstOne = firstOne;
      this.optionChange(parentValue,this.obj.id,array_list,changeId)
    }

    //设置子SELECT
    // selectName1父级,selectName2子级,array_list展示的数据,parentchangeId父级选中id,changeId该级别默认选中
    this.subSelectChange=function(selectName1,selectName2,array_list,firstOne,parentchangeId,changeId)
    {
      var obj1=document.all[selectName1];
      var obj2=document.all[selectName2];
      this.firstOne = firstOne;
      var me=this;
      obj1.οnchange=function()
      {
        me.optionChange(this.options[this.selectedIndex].value,obj2.id,array_list);
      }
      if(parentchangeId){
        me.optionChange(parentchangeId,selectName2,array_list,changeId);
      }
    }

    // parentValue父级被选中的值,selectName指select的ID,array_list罗列该级别的数据,changeId选中的id
    this.optionChange=function (parentValue,selectName,array_list,changeId)
    {
      var obj1=document.all[selectName];
      obj1.length=0;
      obj1.options[0]=new Option(this.firstOne,'');
      for(var i=0;i<array_list.length;i++)
      {
        if(parentValue == array_list[i][0]){
          //new option('显示文案','值')
          if(changeId && changeId==array_list[i][1]){
            obj1.options[obj1.length++] = new Option(array_list[i][2],array_list[i][1],true,true);
          }else{
            obj1.options[obj1.length++] = new Option(array_list[i][2],array_list[i][1]);
          }

        }
      }
    }
  }
</script>  
  
  
<script language="javascript">
  //例子1-------------------------------------------------------------
  //数据源(可以多个数组,也可以单个数组做级联,单个数组数据可以做多个级联)
  var array1=new Array();
  array1[0]=new Array(0,1,"华南地区"); //数据格式 ID,父级ID,名称
  array1[1]=new Array(0,2,"华北地区");

  var array2=new Array();
  array2[0]=new Array(1,1,"上海");
  array2[1]=new Array(1,2,"广东");
  array2[2]=new Array(2,3,"北京");
  array2[3]=new Array(2,4,"河北");

  var array3=new Array();
  array3[0]=new Array(2,1,"湛江");
  array3[1]=new Array(2,2,"廉江");
  array3[2]=new Array(3,3,"五环");
  array3[3]=new Array(3,4,"六环");
  //--------------------------------------------
  //这是调用代码
  var liandong=new CLASS_LIANDONG_YAO() //设置数据源
  liandong.firstSelectChange(0,"s1",array1,'请选择地区',1);  //设置第一个选择框
  liandong.subSelectChange("s1","s2",array2,'请选择城市',1,2); //设置子级选择框
  liandong.subSelectChange("s2","s3",array3,'请选择镇',2,1);   //设置子级选择框
</script>

参考:http://www.codefans.net/jscss/code/3255.shtml    做了修改


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值