2014-02-17 13 views
0

我想弄清楚用戶選擇它後刪除選項的Jquery。如何動態刪除選定的選項

<select id="field4" name="ProductRankingAtHome" style="width: 30%"> 
    <option value="">-Please Select-</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 
<select id="field5" name="ProductRankingAtWork" style="width: 30%"> 
    <option value="">-Please Select-</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 
<select id="field6" name="ProductRankingInCar" style="width: 30%"> 
    <option value="">-Please Select-</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 

所以,有人選擇 「1」 之後,從 「字段4」, 「1」 將不會出現在字段5-等。

我想:

$ document.getElementById("field4").addEventListener("change", function (select) { 
    if (this.value != "") { 
     var select2 = document.getElementById("field5"); 
     for (var i = 0; i < select2.options.length; i++) { 
      if (this.value == select2.options[i].value) { 
       select2.options[i] = null; 
       break; 
      } 
     } 
    } 
}, false); 

回答

0

使用.remove()options

select2.remove(i); //i is the index of the option value you wish to remove 
0

事情是這樣的 -

$("#field4").on('change',function(){ 
if(this.value != ''){ 
    $("#field5 option[value='"+this.value+"']").remove(); 
} 
}); 
0

試試這個:

$("option").on("click",function(){ 
    var value=$(this).val(); 
    $("option[value='"+value+"']").each(function(){ 
     $(this).remove(); 
    }); 
}); 

Here

+0

我試圖做到這一點,而無需用戶單擊提交。所以他們在field4中滾動選擇一個選項,該選項從field5中刪除 – user3320237

0

什麼其他人說一起去。這是選定更改後刪除ddl中的第一項,以模擬佔位符

$('#ddl').change(function() { 
        if ($(this).val() != '') { 
         var firstChild = $(this).children().eq(0); 
         if (firstChild.attr('value') == '') { 

          firstChild.remove(); 

         } 
        }      
       });