使用Enter键提交表单而不提交按钮?

Ale*_*lex 116 html forms jquery form-submit

可能重复:
HTML:通过按Enter键提交表单而不提交按钮

如何在文本输入字段中仅使用Enter键提交表单,而无需添加提交按钮?

我记得这在过去有效,但我现在测试了它,除非里面有提交类型的输入字段,否则表单不会被提交.

tim*_*ase 208

$("input").keypress(function(event) {
    if (event.which == 13) {
        event.preventDefault();
        $("form").submit();
    }
});
Run Code Online (Sandbox Code Playgroud)

  • @MadsterMaddness仅当我们指定元素的ID时才使用`#`.从那个答案,它指定所有`<input>`元素. (12认同)
  • 不要忘记在输入id前添加#! (3认同)

Jay*_*ord 47

将#form更改为您表单的ID

$('#form input').keydown(function(e) {
    if (e.keyCode == 13) {
        $('#form').submit();
    }
});
Run Code Online (Sandbox Code Playgroud)

或者

$('input').keydown(function(e) {
    if (e.keyCode == 13) {
        $(this).closest('form').submit();
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 您可以仅在表单上绑定keydown事件,而不是绑定各个输入:keydown事件将传播到表单. (8认同)
  • 如果你的表单有多个输入元素,那么稍微好一点就是将处理程序绑定到表单并过滤来自输入元素的事件,如:$('#form').on('keydown','input',function(e) ){... (2认同)

Bri*_*laz 14

杰伊吉尔福德的答案会奏效,但我认为最简单的方法就是display: none;在表格中单击提交按钮.

  • 这对我不起作用,我必须设置可见性:隐藏; 代替. (4认同)

FtD*_*Xw6 5

@ JayGuilford的答案很好,但是如果你不想要JS依赖,你可以使用submit元素并简单地隐藏它display: none;.