如何实现下拉框联动?

JavaScript015

如何实现下拉框联动?,第1张

网页下拉框联动,即第一个下拉框内容改变,则与之联动的另一个下拉框的内容也随之改变。这个功能javascript(以下简称js)或者jsp都可以实现,不过根据笔者经验,除非万不得已,能够利用js实现的话就尽量不要使用jsp,因为js是静态语言,执行不需要和服务器联系 ,不论在速度上还是稳定性上都有很大的优越性。

下拉框的条目内容如果是事先确定的并且数量较少,那么可以事先定义两个数组,将下拉框的条目内容存进去,为了实现上的方便,可以利用下标对照进行存储,当然,也可以用别的方法,只要可以做到第一级下拉框和二级的条目对应起来就行了。

以下标对照存储为例

比方说第一级下拉框的内容为A,B,C当选定A时,二级下拉框内容为11,22,33,选定B时,二级下拉框内容为44,55,66,选定C时,二级下拉框内容为77,88,99;这样的话定义的两个数组为:

var quanbu1 = new Array(A,A,A,B,B,B,C,C,C)

var quanbu2 = new Array(11,22,33,44,55,66,77,88,99)

1.可以动态添加多个下拉框,可减少下拉框

2.选中第一个下拉框的任意一个值,同时第三个下拉框的值跟着改变,显示对应的数据。

ps:what?光动态添加就足以。。。。赋值还不能直接赋,而是添加下拉时就赋值。。。。。经过百般折磨,头发掉了n根,最终通过巧妙的思路解决了,在此记录下。若对你有所帮助,点赞加关注吧!后续及时更新。

第一个下拉选项显示

选择下拉项,同时加载数据到第三个下拉框

注:在这里直接去掉了第二行的标签

为了获取改变数据的行,试了很久,动态生成的下拉框无法获取到索引,所以才想到了使用id,并且给id后加一个数字

 <Script>

   function cx(){

   //-一个国家、省、市的联动这么麻烦?参考下面代码

   //根据下拉框每次的改变。得到下级省、市。动态添加

   var selectA = document.getElementById('A')

   var selectB = document.getElementById('B')

    var acc=new Array()

    acc['请选择']=['请选择']

 acc['四川']=['汶川','眉山']//所有省对应的市

 acc['武汉']=['襄阳','宜昌','随州']

       

     selectB.options.length=0

          

  for(var i=0i<acc[selectA.value].lengthi++){

  

   

    selectB.options.add(new Option(acc[selectA.value][i],acc[selectA.value][i]))

  }

     

   

   }

  </Script>

 </HEAD>

 <BODY>

<select onchange="cx()" id="A">

<option value="请选择">请选择</option>

<option value="四川">四川</option> 

<option value="武汉">武汉</option>

</select>

<select  id="B"> 

<option value="请选择">请选择</option>

</select>

  

  

 </BODY>

</HTML>