http://community.csdn.net/Expert/topic/4026/4026266.xml?temp=.6770136

解决方案 »

  1.   

    你可以使用onchange方法当list1选中值时,触发函数(出去list1选中的值)
      

  2.   

    在js里有几个函数结合可以搞定你的需求:indexOf,replace
    具体自己考虑一下,不难
      

  3.   

    这些都可以解决的,用JAVASCRIPT.
    1.这个先定义一个JS的数组,
    然后根据LIST的长度对JS的数组循环
    赋值.
    2.如wufeng0916(aa) 所说,用onchange方法,
    触发一个JS函数,在这个函数中对选中的值与
    上面得到的数组进行比较,如果是一样的,就
    去掉.这里面会用到wzrain(晨雨)所说的
    indexOf函数.
    先把思路定好了,就比较好做了!
      

  4.   

    看了2楼NetRep_Loser(网络堕落失败者)的帖子,谢谢指教!
    不过有个小问题,如果我先选择list3,然后选择list2,该如何处理呢?5楼wufeng0916(aa):如何将al传到onchange中?
    onchange="myfunction(al);"对么?谢谢6,7楼的提示。
      

  5.   

    写个tag,在加载的时候构建javascript对象就可以了。
    我以前写过。需要的话。留个mail吧。
      

  6.   

    可以用JS的动态输出技术
    类似的语句:div.innerHTML="html代码";
    可以动态的改变LIST的值,你可以查一下具体代码怎么写,我的时间不多,就不给你写了
    把思路给你说一下,就是在页面定义一个div,给个id假设id=div1,list放在div里
    那么在js里用document.all.div1.innerHTML="改变后的list代码";这样list就会相应变化
    祝你好运!
      

  7.   

    谢谢回答。
    我对javascript不是很熟。
    看过的一些代码在函数中的array基本是固定的。
    我的arraylist是用java代码从数据库中得出的,所以我不知道
    如何将我的arraylist放到函数myfunction中,是javascript中
    的array么?
    我可以在函数中这样用我的arraylist么?
    function myfunction(selectedIndex,list,al){
        var i;
        al.remove(selectedIndex);
        for (i = 0; i < al.length; i++) {
          list.options[i] = new Option(al[i]);
        }
    }
    其中:
    onchange="myfunction(this.selectedIndex, this.form.list2, al);"
    谢谢了。
      

  8.   

    初步解决了。代码如下:
    onChange="myfunc(this.selectedIndex, this.form.list1, this.form.list2);"
    function myfunc(selectedIndex, alist, blist) {
      var i, j = 0;
      for (i = 0; i < bstation.length; i++) {
        if(i != selectedIndex) {
          blist.options[j] = new Option(alist.options[i].value);
          j++;
        }
      }
    }
    不过这样只能list1关联list2,list2关联list3。
    有没有更好的方法呢?