【问题标题】:Submitting a form with the enter button in a form with several submit buttons在带有多个提交按钮的表单中提交带有回车按钮的表单
【发布时间】:2010-11-01 10:24:57
【问题描述】:

我有一个带有简单文本字段和多个提交按钮的表单。当用户按下回车键时,我想使用特定的提交按钮提交表单,但看起来表单只是选择了第一个按钮。有没有办法告诉浏览器在用户按下回车时选择哪个提交按钮?最好没有 javascript,但如果这是唯一的解决方案,我会接受它。

编辑:除了有多个提交按钮,我别无选择。这是旧版应用。

【问题讨论】:

  • 为什么需要多个提交按钮?你想做什么?也许还有其他方法
  • 不要为需要多个提交按钮而道歉。这是一个完美的主意
  • 尤其是因为这似乎是使用 MVC.NET 确定单击哪个按钮的唯一方法

标签: javascript html forms


【解决方案1】:

没有办法。最简单的解决方案就是确保表单中的第一个提交按钮是您希望由 Enter 按钮触发的那个。

请注意,此提交按钮可以是表单中其他地方的按钮的副本,并且不必可见

【讨论】:

  • 这是一个巧妙的技巧。我用过它,它就像一个魅力。谢谢!
【解决方案2】:

你可以使用简单的 JS 来捕捉 onkeypress 事件:

onkeypress="if ((event.keyCode | event.which) == 13) { document.getElementById('MySubmitButton').click(); return false; }"

只需将其添加到文本框标签,并将“MySubmitButton”替换为所需提交按钮的 ID。

注意:使用 ID,而不是名称。

【讨论】:

  • 谢谢!在过去的 30 分钟里,我一直在研究各种不同的 hack,这个是最好的!
【解决方案3】:

如果你有以下 HTML

<form id="form_one">
    <input type="submit" value="Submit 1" />
</form>
<form id="form_two">
    <input type="submit" value="Submit 2" />
</form>

那么你可以有一点jQuery如下

$(document).ready(function() {
    $(this).keydown(function(e) {
        if (e.keyCode == '13') {
            $("#form_one").submit();
        }
    });
});

显然,您必须输入逻辑来决定提交哪个表单。

据我所知,如果“form_one”中的控件具有焦点并且您按 Enter 键,它将自动提交该控件包含在其中的表单。

【讨论】:

    【解决方案4】:

    您可以在按钮的“onclick”或“onkeypress”事件上定义一个 javascript 方法,您希望从中获取提交的表单。但是你必须定义在javascript函数中发生的过程

    【讨论】:

      猜你喜欢
      • 2017-04-12
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      相关资源
      最近更新 更多