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

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

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

当前回答

在现代,undeprecated(没有keyCode或onkeydown) Javascript:

<input onkeypress="if(event.key == 'Enter') {console.log('Test')}">

其他回答

document.onkeypress = function (e) {
 e = e || window.event;
 var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
 if (charCode == 13) {

        // Do something here
        printResult();
    }
};

这是我的意见。我正在为Windows 8开发一个应用程序,并希望按钮在我按Enter键时注册一个单击事件。我在JS中做这个。我尝试了一些建议,但都有问题。这工作得很好。

event.returnValue = false

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

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

那就把它编码进去!

<input type = "text"
       id = "txtSearch" 
       onkeydown = "if (event.keyCode == 13)
                        document.getElementById('btnSearch').click()"    
/>

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

在jQuery中,以下代码可以工作:

$("#id_of_textbox").keyup(function(event) {
    if (event.keyCode === 13) {
        $("#id_of_button").click();
    }
});

$(“#pw”).keyup(function(event) { if (event.keyCode === 13) { $(“#myButton”).click(); } }); $(“#myButton”).click(function() { 警报(“按钮代码已执行。 }); <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script> 用户名:<输入 id=“用户名” 类型=“文本”><br> 密码:&nbsp;<输入 id=“pw” 类型=“密码”><br> <按钮 id=“我的按钮”>提交</button>

或者在纯JavaScript中,以下代码可以工作:

document.getElementById("id_of_textbox")
    .addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
        document.getElementById("id_of_button").click();
    }
});

document.getElementById(“pw”) .addEventListener(“keyup”, function(event) { event.preventDefault(); if (event.keyCode === 13) { document.getElementById(“myButton”).click(); } }); 功能按钮代码() { 警报(“按钮代码已执行。 } <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script> 用户名:<输入 id=“用户名” 类型=“文本”><br> 密码:&nbsp;<输入 id=“pw” 类型=“密码”><br> <button id=“myButton” onclick=“buttonCode()”>提交</button>

在Angular2:

(keyup.enter)="doSomething()"

如果您不希望按钮中有一些视觉反馈,那么不引用按钮而是直接调用控制器是一个很好的设计。

另外,id也不需要——这是NG2分离视图和模型的另一种方式。