我有一个文本输入和一个按钮(见下文)。我如何使用JavaScript触发按钮的点击事件时,进入键按下文本框内?
在我的当前页面上已经有一个不同的提交按钮,所以我不能简单地将该按钮设置为提交按钮。并且,我只想让Enter键单击这个特定的按钮,如果它是从这个文本框中按下,没有其他。
<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />
为了添加一个完全简单的JavaScript解决方案来解决@icedwater的表单提交问题,这里有一个完整的表单解决方案。
注意:这是针对“现代浏览器”,包括IE9+。IE8版本并不复杂,可以在这里学习。
小提琴:https://jsfiddle.net/rufwork/gm6h25th/1/
HTML
<body>
<form>
<input type="text" id="txt" />
<input type="button" id="go" value="Click Me!" />
<div id="outige"></div>
</form>
</body>
JavaScript
// The document.addEventListener replicates $(document).ready() for
// modern browsers (including IE9+), and is slightly more robust than `onload`.
// More here: https://stackoverflow.com/a/21814964/1028230
document.addEventListener("DOMContentLoaded", function() {
var go = document.getElementById("go"),
txt = document.getElementById("txt"),
outige = document.getElementById("outige");
// Note that jQuery handles "empty" selections "for free".
// Since we're plain JavaScripting it, we need to make sure this DOM exists first.
if (txt && go) {
txt.addEventListener("keypress", function (e) {
if (event.keyCode === 13) {
go.click();
e.preventDefault(); // <<< Most important missing piece from icedwater
}
});
go.addEventListener("click", function () {
if (outige) {
outige.innerHTML += "Clicked!<br />";
}
});
}
});
在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>
密码: <输入 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>
密码: <输入 id=“pw” 类型=“密码”><br>
<button id=“myButton” onclick=“buttonCode()”>提交</button>