我需要你的帮助,
我对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>
答案 0 :(得分: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]);
}
}
}
};
答案 1 :(得分:-1)
您可以使用以下代码执行此操作。我使用了keydown
事件监听器。
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
}
}
}