【问题标题】:JavaScript: Detect Alt/Option Key on Select ElementJavaScript:检测选择元素上的 Alt/Option 键
【发布时间】:2017-06-20 10:36:49
【问题描述】:

我在 Macintosh 上运行它,因此使用了 option 键。

我有一个简单的 HTML 菜单如下:

<select name="select-item">
    <option value="">Test</option>
    <option value="1">One</option>
</select>

它位于 form 元素内,在 JavaScript 中,该元素具有创造性地命名为 form 变量。

当一个菜单项被选中时,如何判断 option/alt 键是否按下?

我已经尝试了以下代码:

form['select-item'].onchange=function(e) {
    alert(e.altKey);
}

但我得到undefined 作为结果,无论选项键是否按下。如果我尝试使用 shift 键,这同样适用。

请不要使用 jQuery。

【问题讨论】:

    标签: javascript drop-down-menu event-handling alt-key


    【解决方案1】:

    尝试在窗口上使用 keydown 事件并存储值

    var keys = [];
    window.onkeyup = function(e) {keys[e.keyCode]=false;}
    window.onkeydown = function(e) {keys[e.keyCode]=true;}
    
    
    form['select-item'].onchange=function(e) {
        alert(keys[18]);  // 18 is the keyCode for alt
    }
    

    你可以在https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes找到所有的keycode

    Here 是一个 jsfiddle 演示

    【讨论】:

    • 谢谢,但问题是我如何检测到变化的关键?
    • 好的,很抱歉让您误会了。我希望我的答案的编辑将解决您的问题 c:
    猜你喜欢
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2012-05-26
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多