【问题标题】:Submit form with Enter key without submit button? [duplicate]使用 Enter 键提交表单而没有提交按钮? [复制]
【发布时间】:2012-02-17 09:25:57
【问题描述】:

可能重复:
HTML: Submitting a form by pressing enter without a submit button

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

我记得这在过去有效,但我现在对其进行了测试,除非其中有提交类型的输入字段,否则表单不会被提交。

【问题讨论】:

    标签: jquery html forms form-submit


    【解决方案1】:
    $("input").keypress(function(event) {
        if (event.which == 13) {
            event.preventDefault();
            $("form").submit();
        }
    });
    

    【讨论】:

    • 别忘了在输入id前面加上#!
    • @MadsterMaddness 仅当我们指定元素的 ID 时才使用 #。从该答案中,它指定了所有 <input> 元素。
    【解决方案2】:

    将#form 更改为您的表单ID

    $('#form input').keydown(function(e) {
        if (e.keyCode == 13) {
            $('#form').submit();
        }
    });
    

    或者

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

    【讨论】:

    • 您可以只在表单上绑定 keydown 事件,而不是绑定单个输入:keydown 事件将向上传播到表单。
    • 确实很有帮助!不要到处都有提交表单按钮是有意义的
    • 如果您的表单有多个输入元素,那么稍微好一点的方法是将处理程序绑定到表单并过滤来自输入元素的事件,如下所示:$('#form').on('keydown' , '输入', function(e) { ...
    【解决方案3】:

    Jay Gilford 的回答会奏效,但我认为最简单的方法是在表单中的提交按钮上打一个 display: none;

    【讨论】:

    • 这对我不起作用,我必须设置可见性:隐藏;而是。
    【解决方案4】:

    @JayGuilford 的回答很好,但如果您不想要 JS 依赖项,您可以使用提交元素并使用 display: none; 简单地隐藏它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 2011-04-02
      • 2018-01-19
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 2021-08-28
      相关资源
      最近更新 更多