如何在输入中绑定两个键盘键,如 Ctrl + L

Posted

技术标签:

【中文标题】如何在输入中绑定两个键盘键,如 Ctrl + L【英文标题】:How to bind two keyboard keys like Ctrl +L in an input 【发布时间】:2019-11-15 15:49:07 【问题描述】:

我有一个文本输入和一个按钮(见下文)。当按下某个“Ctrl + Enter(其他快捷键)”键时,如何使用 javascript 触发按钮的单击事件?

<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />

【问题讨论】:

【参考方案1】:

这些键在事件值中的存储方式不同,因此您可以检查它们是否都像这样被按下

if(event.keyCode == 13 && event.ctrlKey)
   //insert logic

其他键也可以通过这种方式访问​​。

【讨论】:

【参考方案2】:

你可以试试keyCodectrlKey

    function check(e) 
        tecla = (document.all) ? e.keyCode : e.which;
        if(tecla == 13 && e.ctrlKey)
            alert("hello");;
    
<input type="search"  onkeydown="return check(event);" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />

希望对你有帮助。

【讨论】:

【参考方案3】:

在javascript中,你可以这样做

<script>
 document.onkeyup = function(e) 
  if (e.which == 77) 
    alert("M key was pressed");
   else if (e.ctrlKey && e.which == 66) 
    alert("Ctrl + B shortcut combination was pressed");
   else if (e.ctrlKey && e.altKey && e.which == 89) 
    alert("Ctrl + Alt + Y shortcut combination was pressed");
   else if (e.ctrlKey && e.altKey && e.shiftKey && e.which == 85) 
    alert("Ctrl + Alt + Shift + U shortcut combination was pressed");
  
 ;
</script>

或者您可以使用库 - https://wangchujiang.com/hotkeys/

【讨论】:

以上是关于如何在输入中绑定两个键盘键,如 Ctrl + L的主要内容,如果未能解决你的问题,请参考以下文章

如何用delphi获取键盘扫描码及模拟键盘组合键

在LINUX如何用键盘复制,粘贴啊、

如何在 WPF 中绑定 Ctrl 和数字键盘 /(正斜杠)?

绑定数字键(数字小键盘)

电脑的(BACKSPACE)删除键为啥失效了,怎么设置啊?

如何用键盘选择桌面图标