【问题标题】:How to bind two keyboard keys like Ctrl +L in an input如何在输入中绑定两个键盘键,如 Ctrl + L
【发布时间】:2019-11-15 15:49:07
【问题描述】:
我有一个文本输入和一个按钮(见下文)。当按下某个“Ctrl + Enter(其他快捷键)”键时,如何使用 JavaScript 触发按钮的单击事件?
<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />
【问题讨论】:
标签:
javascript
html
button
input
textinput
【解决方案1】:
这些键在事件值中的存储方式不同,因此您可以检查它们是否都像这样被按下
if(event.keyCode == 13 && event.ctrlKey){
//insert logic
}
其他键也可以通过这种方式访问。
【解决方案2】:
你可以试试keyCode和ctrlKey:
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/