我有5个下拉菜单。他们的值都是从一个数组中获得的。我想实现选中一个后,在其他的下拉列表中把这个选中的值过滤掉  求大家帮我解决一下这个问题
<body>
<select id="s1" onchange="">
</select>
<select id="s2" onchange="">
</select>
<select id="s3" onchange=""> 
</select>
<select id="s4" onchange="">
</select>
<select id="s5" onchange="">
</select>
</body>
<script language="JavaScript" type="text/JavaScript">
 var arr = new Array ("A","B","C","D","E","F","G","H","J","K","L");
</script>
大概就是这样的情况 onchange函数怎么写?????

解决方案 »

  1.   

    <body>
    <select id="s1" onchange="change(1)">
    </select>
    <select id="s2" onchange="change(2)">
    </select>
    <select id="s3" onchange="change(3)"> 
    </select>
    <select id="s4" onchange="change(4)">
    </select>
    <select id="s5" onchange="change(5)">
    </select>
    </body>
    <script language="JavaScript" type="text/JavaScript">
    var arr = new Array ("A","B","C","D","E","F","G","H","J","K","L");
    var s_num = 5;//select的个数
    function change(num)
    {
    num += 1;
    if (num > s_num)
    {
    return;
    }
    document.all("s"+num).length = 0;
    for (var i = 0; i < arr.length; i++)
    {
    if (num > 1)
    {
    for (j = 1; j < num; j++)
    {
    if (document.all("s"+j).value == arr[i])
    {
    break;
    }
    }
    if (j >= num)
    {
    document.all("s"+num).add(new Option(arr[i], arr[i]));
    }
    }
    else
    {
    document.all("s"+num).add(new Option(arr[i], arr[i]));
    }
    }
    change(num);
    }
    for (var i = 0; i < arr.length; i++)
    {
    document.all.s1.add(new Option(arr[i], arr[i]));
    }
    change(1);
    </script>
      

  2.   

    感谢adverse(King)  最近一直不能上网  谢谢你的帮助  
    但还是差点满足我的要求  我要求把这次选中的 在这里的下拉框中过滤掉  比如这次选a了  下拉中应该没有a  你帮我改下 一起给你分  谢谢
      

  3.   

    document.all("s"+num).options[selectindex] = null//selectindex 被选中的index 应该好取的
    //不过没验证过,呵呵