【问题标题】:How do I use the Enter key as an event handler (javascript)? [duplicate]如何使用 Enter 键作为事件处理程序 (javascript)? [复制]
【发布时间】:2011-08-21 08:09:00
【问题描述】:

我正在尝试进行自己的聊天...所以我有一个输入文本字段,提交按钮甚至不是提交,它只是一个按钮...所以当按下回车键时,我需要出现在我的文本区域中的输入字段的值(只读)...

好吧,长话短说,我只想要一个基本的输入键事件处理程序,我知道它与提交按钮完美配合,因为您根本不需要编程任何东西,它的默认值。但我的按钮是 type="button" .... 所以当你按下 enter 时什么都没有发生......我如何通过按下 enter 来触发我的按钮?

【问题讨论】:

  • 在表单中,按钮元素默认是提交按钮。如果您在表单中设置输入并使用普通提交,您应该能够在没有脚本的情况下完成所有工作。然后,您可以在页面加载时添加一个 onsubmit 监听器,以用 XHR 替换提交。现在你有一个可以使用或不使用 JS 的聊天页面,并且你有一个很好的后备。
  • whats XHR,使其成为提交按钮的问题是,当按下按钮时,每次发送聊天消息时页面都必须刷新,我使用 AJAX 和一切,MySQL数据库等,但我必须单击按钮,我将消息发送到聊天框,多么蹩脚....我需要 ENTER 事件处理程序
  • @Juan - 答案在我提供的链接中。有使用 JQuery 的代码,也有使用 vanilla Javascript 的代码。任君挑选。
  • 如果你希望在提交时页面不刷新,你应该处理表单的onsumbit,做你想做的,然后返回false

标签: javascript events button handler enter


【解决方案1】:

您可以将按钮类型设为submit,或者您可以使用onkeyup 事件处理程序并检查键码13。

以下是关键代码列表:Javascript Char codes/Key codes)。您必须知道如何从事件中获取密钥代码。

编辑:一个例子

HTML:

<input onkeyup="inputKeyUp(event)" ...>

纯javascript:

function inputKeyUp(e) {
    e.which = e.which || e.keyCode;
    if(e.which == 13) {
        // submit
    }
}

【讨论】:

  • 那个keycode 13可能是我要找的,但我不熟悉我没见过也没用过,你能给我一个sn-p代码
  • 感谢entonio,这很好,回答简单,简短而不复杂
【解决方案2】:

这是一个用于监听回车键的工作代码 sn-p

$(document).ready(function(){

    $(document).bind('keypress',pressed);
});

function pressed(e)
{
    if(e.keyCode === 13)
    {
        alert('enter pressed');
        //put button.click() here
    }
}

【讨论】:

    【解决方案3】:

    这是当前接受的答案的一个版本(来自@entonio),使用key 而不是keyCode:

    HTML:

    <input onkeyup="inputKeyUp(event)" ...>
    

    纯javascript:

    function inputKeyUp(e) {
        if (e.key === 'Enter') {
            // submit
        }
    }
    

    【讨论】:

    • 有趣,我相信当时并不存在。我想这些天没有人再写这种事件处理程序了。
    • 不要复制/粘贴相同的答案,在一个地方发布然后投票关闭另一个地方,就像我刚刚做的那样。
    • 好点,entonio 和 LGSon。我只是想传播有关 event.key 的信息。这不是精确的复制/粘贴,但您的评论和反对票让我阅读了更多关于标记和相关主题的信息,以减少我对 Stack Overflow 礼仪的无知,所以谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2013-12-24
    相关资源
    最近更新 更多