停止输入/返回键提交表单

Mar*_*ean 5 javascript forms jquery keyboard-events jquery-events

我在表格中有一张桌子.该表包含一些表单字段,但表格外部还有表单字段(但仍在表单中).

我知道Enter和Return传统上用于通过键盘提交表单,但我想为表中的字段停止此行为.例如,如果我将一个字段集中在表中并按Enter/Return,则不会发生任何事情.如果我将一个字段聚焦在表格之外(但仍然在表格内),那么它就像正常一样提交.

我有一个针对此表的jQuery插件.简化,这是我迄今为止尝试过的:

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

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>
Run Code Online (Sandbox Code Playgroud)

gdo*_*ica 9

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

或仅用于输入:

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