2013-07-22 60 views
2

上選擇的選項,我需要你的幫助,刪除從一個選擇框使用「刪除」鍵鍵盤

我是比較新的javascript和需要一個專家/高級編碼器的幫助。

如何從選擇框中刪除突出顯示/選定的值,因此一旦選擇完成並點擊我的鍵盤上的'刪除'鍵,將會運行一個javascript函數並從中刪除選定的選項selectbox

這裏是我的html:

<!DOCTYPE html>  
<html>  
<head>  
</head>  
<body> 
<select style="width: 250px;" id="list"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 
</body>  
</html> 

回答

3

您將一個事件處理程序的onkeydown,你的刪除鍵檢查,你得到的電流值,你會發現用該值的選項,您刪除的選項。 http://jsfiddle.net/KgPBr/2/

$("#list").keydown(function(event) { 
    if(event.which != 46) // not delete key 
     return; 
    var sel = $(this); 
    var val = sel.val(); 
    if(val != "") 
     sel.find("option[value="+val+"]").remove(); 
}); 

編輯這裏的JavaScript版本,它可能是與所有的瀏覽器比jQuery的版本兼容少平原。 http://jsfiddle.net/9cwyx/

document.getElementById("list").onkeydown = function(e) { 
    var evt = e ? e : event; 
    var sel = evt.target ? evt.target : evt.srcElement; 
    if(evt.keyCode && evt.keyCode == 46 || evt.which == 46) { 
    var val = sel.value; 
    var opts = sel.getElementsByTagName("option"); 
    if(val != "") { 
     for(var i=0; i<opts.length; i++) { 
      if(val == opts[i].value) 
       sel.removeChild(opts[i]); 
     } 
    } 
    } 
}; 
+0

問題不是標記與jQuery – bugwheels94

+0

看起來像是用某種庫的幫助工作。是否只有一個純JavaScript的方式來刪除它? –

+0

@Ankit - jQuery是一個基於JavaScript的便利庫,它是JavaScript的基礎。 –

-1

您可以使用下面的代碼來做到這一點。我用​​事件監聽器。

document.getElementById('list').addEventListener('keydown', deleteIt, false); 

function deleteIt(event) { 
    if (event.which == 46) { //keyCode of DEL is 46 
     var e = document.getElementById("list"); 
     for (i = 0; i < e.length; i++) { 
      e.remove(i); //Used to delete the option 
     } 
    } 
} 

入住這Updated JSFiddle

+0

請分享downvote的原因,以便我可以從我的錯誤中學習? – Praveen