javascript - 使用键盘上的 "delete"键从选择框中删除选定的选项

标签 javascript

我需要你的帮助,

我对 javascript 比较陌生,需要专家/高级编码人员的帮助。

如何从选择框中删除突出显示/选定的值,因此一旦做出选择并按下键盘上的“删除”键,javascript 函数就会运行并从选择框中删除所选选项。

这是我的 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>

最佳答案

您将事件处理程序附加到 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]);
        }
    }
    }
};

关于javascript - 使用键盘上的 "delete"键从选择框中删除选定的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17794222/

相关文章:

javascript - 如何从父元素中删除事件并仅为其特定子元素启用该事件?

javascript - 你会在你的应用程序中嵌入哪个 Javascript 引擎?

javascript - 装饰异步函数的正确方法

javascript - Google Charts 上升 1,不连续

javascript - tslint 创建错误,但功能方面它工作正常

javascript - 使用javascript更改html中元素的类

javascript - 仅当每个值都为 true 时,如何将对象转换为数组

asp.net - 与直接 jquery ajax 调用相比,scriptmanager 有哪些优势?

javascript alert() 函数在 UWP 应用程序中不起作用

javascript - 当我想平滑滚动到这些部分时,JQuery 不工作