gpt4 book ai didi

javascript - 按下 enter 时运行 javascript 函数 - 只有 JavaScript 没有 Jquery

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:36 25 4
gpt4 key购买 nike

您好,当我按回车键时,我正在尝试运行一个 javascript 函数。到目前为止,这是我的代码

我的 HTML

<!DOCTYPE html>
<html>

<head>
<title>JS Bin</title>
</head>

<body>
<div>
<form id="inputForm">
<label for="userInput">Input : </label>
<span id="userInputSpan">
<input type="text" id="userInput" onkeydown="readInput(this)" />
</span>
</form>
</div>
</body>

</html>

我的 JAVASCRIPT

function readInput(e) {
if (e.keyCode == 13) { // 13 is enter key
// Execute code here.
// var temp = e.value;
// console.log(temp);
alert(e.value);
}
}

这是我的 JSBin

最佳答案

您正在将 this 传递给事件处理程序并将其用作 event 对象。

将元素实例和事件对象传递给事件处理程序。

<input type="text" id="userInput" onkeydown="readInput(this, event)" />
^^^^ ^^^^^

并将它们放入处理程序

function readInput(el, e) {
^^ ^
// el: Element
// e: Event object

Updated JSBin

window.onload = function() {
document.getElementById("userInput").focus();
};

function readInput(el, e) {
if (e.keyCode == 13) {
console.log(el.value);
}
}
<div>
<form id="inputForm">
<label for="userInput">Input :</label>
<span id="userInputSpan">
<input type="text" id="userInput" onkeydown="readInput(this, event)"/>
</span>
</form>
</div>


建议:

  1. 使用DOMContentLoaded事件而不是使用 onload。
  2. 使用addEventListener绑定(bind)事件
  3. 要将焦点设置在页面加载上,请在输入上使用 autofocus 属性
  4. 要阻止 form 提交,请在事件处理程序中使用 return false;event.preventDefault()

document.addEventListener('DOMContentLoaded', function() {
document.getElementById('userInput').addEventListener('keydown', function(e) {
if (e.keyCode == 13) {
console.log(this.value);

e.preventDefault(); // Prevent default action i.e. submit form
// return false;
}
}, false);
});
<div>
<form id="inputForm">
<label for="userInput">Input :</label>
<span id="userInputSpan">
<input type="text" id="userInput" autofocus />
</span>
</form>
</div>

关于javascript - 按下 enter 时运行 javascript 函数 - 只有 JavaScript 没有 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33749220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com