我有一个文本输入和一个按钮(见下文)。我如何使用JavaScript触发按钮的点击事件时,进入键按下文本框内?

在我的当前页面上已经有一个不同的提交按钮,所以我不能简单地将该按钮设置为提交按钮。并且,我只想让Enter键单击这个特定的按钮,如果它是从这个文本框中按下,没有其他。

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

当前回答

每次按下回车键时触发搜索,使用以下命令:

$(document).keypress(function(event) {
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == '13') {
        $('#btnSearch').click();
    }
}

其他回答

event.returnValue = false

在处理事件时或在事件处理程序调用的函数中使用它。

它至少在ie浏览器和Opera上运行。

onkeydown="javascript:if (event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('btnSearch').click();}};"

这只是我从一个最近的项目…我在网上找到的,我不知道在普通的JavaScript中是否有更好的方法。

对于那些可能喜欢简洁和现代js方法的人。

input.addEventListener('keydown', (e) => {if (e.keyCode == 13) doSomething()});

其中input是包含input元素的变量。

使用按键和事件。键=== "进入"与现代JS!

const textbox = document.getElementById("txtSearch");
textbox.addEventListener("keypress", function onEvent(event) {
    if (event.key === "Enter") {
        document.getElementById("btnSearch").click();
    }
});

Mozilla文档

支持的浏览器

没有人注意到html属性“accesskey”已经有一段时间了。

这是一个没有javascript的方式来键盘快捷键的东西。

MDN上的accesskey属性快捷方式

故意这样使用的html属性本身就足够了,但是我们可以根据浏览器和操作系统改变占位符或其他指示符。该脚本是一个未经测试的草稿方法,以提供一个想法。您可能想要使用一个浏览器库检测器,比如小浏览器器

让客户知道。 linux =客户。indexOf(linux) > -1, isWin =客户。索引(“windows”> -1, “苹果”> -1, isFirefox =客户索引= -1, 网络工具=客户,索引(“网络工具”)> -1, (歌剧)> -1, 输入=文档。getElementById(“guest输入”); 如果(isFirefox) { 输入。setAttribute(“placeholder”、“ALT + SHIFT + Z”); 否则如果 输入。setAttribute (placeholder”、“ALT + Z”); 否则如果(isMac) 输入。setAttribute(“placeholder”、“CTRL + ALT + Z”); 否则 输入。setAttribute(“placeholder”、“SHIFT +逃亡- > Z”); 否则我就得操作… <输入类型=“文本”id=“guest输入”“accesskey”placeholder=“Acces快捷方式:”></输入>