JavaScript如何在按下"Enter"键时提交文本框内容

15

可能是重复问题:
将文本框绑定到“enter”键

我使用AJAX和jQuery创建了一个聊天系统,并且没有用<form>标签包装用于聊天消息的文本框,因此我无法使用键盘上的 ENTER 按钮提交该消息。

是否有任何方法可以使用javascript从TextBox提交该值?

谢谢。

3个回答

35
document.getElementById("id_of_your_textbox").addEventListener("keydown", function(e) {
    if (!e) { var e = window.event; }
    e.preventDefault(); // sometimes useful

    // Enter is pressed
    if (e.keyCode == 13) { submitFunction(); }
}, false);

1
如果你正在使用一个函数来执行其他操作,就像我一样,请记得在函数调用之前抛出e.preventDefault();以防止表单被提交。 - DShook
原始代码阻止我在框中输入任何内容,编辑后使其正常工作。 - grepsedawk

13
$('#textboxId').keydown(function (event) {
    let keyPressed = event.keyCode || event.which;
    if (keyPressed === 13) {
        $(this).closest('form').submit();
    }
});

如果你没有表单,那么请用你自己的AJAX/提交逻辑代替$(this).closest('form').submit();


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接