从两个下拉列表中删除选项

时间:2013-02-07 21:00:42

标签: javascript jquery select listbox

所以我有两个下拉菜单,如下:

<select id="listbox" name="listbox" multiple="multiple">
            <option> value a </option>
            <option> value b </option>
            <option> value c </option>
 </select>


<select id="listbox2" name="listbox2" multiple="multiple">
            <option> value 1 </option>
            <option> value 2 </option>
            <option> value 3 </option>
 </select>

因此,当用户选择value a并点击“删除”按钮时,它应该删除value a及其对应的位置value 1,反之亦然。

我有一个Javascript代码,但它无法正常工作,这里是:

function removeOption() {
    var x = new Array();
    x[0] = document.getElementById("listbox");
    x[1] = document.getElementById("listbox2");

    x[0].remove(x[0].selectedIndex);
    x[1].remove(x[1].selectedIndex);
}

你们能帮助我吗????

2 个答案:

答案 0 :(得分:2)

试试这个

function removeOption() {
    var listbox = document.getElementById('listbox');
    var listbox2 = document.getElementById('listbox2');

    var selectedIndex = 
        (listbox.selectedIndex == -1) ? listbox2.selectedIndex : listbox.selectedIndex;

    var selItem1 = listbox.options[selectedIndex];
    var selItem2 = listbox2.options[selectedIndex];

    selItem1.remove();
    selItem2.remove();
}

JS小提琴:http://jsfiddle.net/mDX9Q/

答案 1 :(得分:0)

你可以使用这个功能

function removeselected(d1,d2){
             element=document.getElementById(d1);
             element1=document.getElementById(d2);
             var value= new Array();
             var value1= new Array();
             while(element.selectedIndex != -1)
             {
                var t=element.selectedIndex;
                value.push(element.options[t]);
                value1.push(element1.options[t]);
                element.options[t].selected = false;
             }
             for(var i = 0; i < value.length; i++)
             {
                 element.removeChild(value[i]);
                 element1.removeChild(value1[i]);
             };

   }

呼叫使用此

  function remover(){
     removeselected('listbox','listbox2');
     removeselected('listbox2','listbox');
  }

当呼叫从其他下拉列表中删除从下拉列表和类似索引中选择的所有内容时