【发布时间】:2012-05-05 23:34:31
【问题描述】:
我在表单中有一个表格。该表包含一些表单域,但表外也有表单域(但仍在表单内)。
我知道 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是什么,它看起来像一个jquery对象但它不遵循naming conventions。 -
@gdoron 我做到了。这是第一个代码块之后的第一句话! "
base是表 jQuery 对象。" -
@MartinBean。抱歉,但命名约定是您真正想要遵循的。对不起,我很笨。
-
@gdoron 正如我所说,JavaScript 被简化了,但
base名称来自这个插件开始:starter.pixelgraphics.us
标签: javascript jquery forms keyboard-events jquery-events