首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使HTML表单上的Enter键提交,而不是激活按钮

使HTML表单上的Enter键提交,而不是激活按钮
EN

Stack Overflow用户
提问于 2011-11-28 18:27:54
回答 7查看 156.6K关注 0票数 83

我有一个只有一个submit输入,但也有各种button元素的HTML表单。当用户按下'enter‘键时,我本以为它会提交表单,但(至少在Chrome15中)我发现它触发了第一个button (因为它在HTML中比submit输入发生得更早)。

我知道通常不能强迫浏览器偏爱特定的submit输入,但我真的认为浏览器会偏爱submit输入而不是button元素。我是否可以对HTML做一些小的调整来实现这项工作,或者我将不得不接受某种Javascript方法?

下面是HTML的粗略模型:

代码语言:javascript
复制
<form action="form.php" method="POST">
    <input type="text" name="field1"/>
    <button onclick="return myFunc1()">Button 1</button>
    <input type="submit" name="go" value="Submit"/>
</form>
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-05-09 21:22:04

你不需要JavaScript来选择默认的提交按钮或输入。你只需要用type="submit"标记它,其他的按钮用type="button"标记它们。在您的示例中:

代码语言:javascript
复制
<button type="button" onclick="return myFunc1()">Button 1</button>
<input type="submit" name="go" value="Submit"/>
票数 152
EN

Stack Overflow用户

发布于 2011-11-28 18:33:00

您可以使用jQuery:

代码语言:javascript
复制
$(function() {
    $("form input").keypress(function (e) {
        if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
            $('button[type=submit] .default').click();
            return false;
        } else {
            return true;
        }
    });
});
票数 31
EN

Stack Overflow用户

发布于 2011-11-28 18:33:17

试试这个,如果按了enter键,你可以像这样捕获它例如,前几天我开发了一个答案html button specify selected,看看这是否有帮助。

指定表单名称,例如yourFormName,然后您应该能够提交表单,而无需关注表单。

代码语言:javascript
复制
document.onkeypress = keyPress;

function keyPress(e){
  var x = e || window.event;
  var key = (x.keyCode || x.which);
  if(key == 13 || key == 3){
   //  myFunc1();
   document.yourFormName.submit();
  }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8294465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档