javascript - 停止 Enter/Return 键提交表单

标签 javascript jquery forms keyboard-events jquery-events

<分区>

我在表单中有一个表。该表包含一些表单字段,但也有表外(但仍在表单内)的表单字段。

我知道 Enter 和 Return 传统上用于通过键盘提交表单,但我想停止对表中字段的这种行为。例如,如果我聚焦表中的一个字段并按下 Enter/Return,则什么也没有发生。如果我关注表外的字段(但仍在表单内),则它会正常提交。

我有一个针对此表的 jQuery 插件。简而言之,这是我迄今为止尝试过的方法:

base.on('keydown', function(e) {
    if (e.keyCode == 13) {
        e.stopPropagation();
        return false;
    }
});

其中 base 是表 jQuery 对象。这是在我的插件的 init 方法中。但是,按 Enter 键仍会提交表单。

我哪里错了?

编辑:一些简化的 HTML:

<form method="" action="">
  <input type="text" /><!--this should still submit on Enter-->
  <table>
    <tbody>
      <tr>
        <td>
          <input type="text" /><!--this should NOT submit on Enter-->
        </td>
      </tr>
    </tbody>
  </table>
</form>

最佳答案

base.keypress(function(e) {
    var code = e.keyCode || e.which;
    if(code == 13)
        return false;
});

或仅用于输入:

$(':input', base).keypress(function(e) {
    var code = e.keyCode || e.which;
    if(code == 13)
        return false;
});

关于javascript - 停止 Enter/Return 键提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313032/

相关文章:

javascript - jQuery/JavaScript 日期表单验证

javascript - JQuery:验证表单中的所有输入

javascript - 表单更改输入 "text"的样式,以在用户单击该框并将其留空时提醒用户

javascript - 如何使用 Angular-meteor 为 MongoDB 中的嵌套对象生成唯一 id?

javascript - 如何使用 jQuery 简单地删除非嵌套文本的字符?

JQuery - 元素选择

javascript - 怎样才能显示每个菜单的内容?JQuery

php - 我一直收到购物车是空的....?

javascript - 触发嵌套的 JavaScript 函数

javascript - express 是否提供来自隐藏(点)文件夹的静态文件