当用户按下 ENTER 时做出反应

发布于 2024-12-27 12:22:01 字数 558 浏览 0 评论 0原文

我正在开发一个应用程序,如果用户按 ENTER ,无论焦点位于页面上的哪个位置(例如在文本框中),都应该可以运行一个函数或按钮等)。

下面是我尝试过的代码,只是为了了解当用户按 ENTER 时如何反应,但它不起作用。我做错了什么?提前致谢!

var Capsule = {

init: function() {
    var button = document.getElementById("txtInput");
    button.focus();

    Capsule.events();
},

events: function() {
    function checkKeyboard(e) {
        if (e.keyCode == 13) {
            console.log("Pressed ENTER.");
            return false;
        }
    }
}
}

window.onload = Capsule.init;

I'm working on an application where it should be possible to run a function if the user presses ENTER regardless of where the focus is on the page (eg. in a textbox or on a button etc).

Below is the code i've experimented with, just to find out how to react when the user presses ENTER, but it doesn't work. What am I doing wrong? Thanks in advance!

var Capsule = {

init: function() {
    var button = document.getElementById("txtInput");
    button.focus();

    Capsule.events();
},

events: function() {
    function checkKeyboard(e) {
        if (e.keyCode == 13) {
            console.log("Pressed ENTER.");
            return false;
        }
    }
}
}

window.onload = Capsule.init;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

有木有妳兜一样 2025-01-03 12:22:02

您还必须绑定事件。

  • onkeydown - 如果您想在按下按键后立即捕获事件。
  • onkeypress - 如果您想在按住按键的同时捕获每次击键。
  • onkeyup - 如果您想在抬起按键后立即捕获事件。

由于您使用的是 return false; (我推荐 e.preventDefault()),您可能正在寻找 onkeydownonkeypress 无法在 onkeyup 处阻止默认操作,因为默认行为已经发生

events: function() {
    function checkKeyboard(e) {
        if (e.keyCode == 13) {
            console.log("Pressed ENTER.");
            return false;
        }
    }
    window.onkeypress = checkKeyboard; //Or: document.onkeypress = ..
}

You have to bind the event as well..

  • onkeydown - if you want to capture the event right after the key has pressed down.
  • onkeypress - if you want to capture each keystroke while holding the key pressed.
  • onkeyup - If you want to capture the event right after lifting the key.

Since you're using return false; (I recommend e.preventDefault(), you're probably looking for onkeydown or onkeypress. The default action cannot be prevented at onkeyup, because the default behaviour has already occurred.

Code:

events: function() {
    function checkKeyboard(e) {
        if (e.keyCode == 13) {
            console.log("Pressed ENTER.");
            return false;
        }
    }
    window.onkeypress = checkKeyboard; //Or: document.onkeypress = ..
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文