在没有提交按钮时按下回车键时提交表单

时间:2010-02-16 08:30:31

标签: html

我有一个没有提交按钮的表单,如果用户点击回车键时仍然提交表单会很棒。我尝试添加一个隐藏的提交按钮,它在Safari,Firefox和Chrome中提供了所需的行为,但该表单仍未在IE中提交。有没有一种标准的方法呢?

7 个答案:

答案 0 :(得分:2)

测试/跨浏览器:

function submitOnEnter(e) {
    var theEvent = e || window.event;
    if(theEvent.keyCode == 13) {
        this.submit;
    }
    return true;
}
document.getElementById("myForm").onkeypress = function(e) { return submitOnEnter(e); }

<form id="myForm">
<input type="text"/>
...
</form>

如果没有提交按钮,如果javascript不可用,表单将会严重降级!

答案 1 :(得分:2)

使用jQuery(自然地):

$("#myForm input").keyup(
    function(event){
        if(event.keycode == 13){
            $(this).closest('form').submit();
        }
    }
);

试一试。

答案 2 :(得分:0)

onKeyDown事件的文本框或一些控件调用一个javascript函数并添加form.submit();对函数的陈述。

快乐的编码!!

答案 3 :(得分:0)

这是你的意思吗?

document.myformname.submit();

答案 4 :(得分:0)

这需要JavaScript。如果你不懂语言,使用JavaScript实现这个的最简单方法就是使用类似jQuery的东西(就像inkedmn所说的那样)。

<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript" charset="utf-8">
    <!--
        $(document).ready(function() {
            $(document).keyup(function(event){
                if(event.keycode == 13){ // This checks that it was the Enter key
                    $("#myForm").submit(); // #myForm should match the form's id attribute
                }
            });
        });
    //-->
    </script>
</head>
<body>
    <form id="myForm">
    ...
    </form>
</body>

有关jQuery的更多信息: http://docs.jquery.com/Tutorials:How_jQuery_Works#jQuery:_The_Basics

答案 5 :(得分:0)

你知道你可以在那里放一个<button type="submit">submit</button>并用css改变他的位置,对吧? position:absolute;left:-9999px;应该做的伎俩。 display:none将不起作用。

如果未加载js,这也可以。

编辑: 但是,如果您选择使用js,如果您有textarea,请不要忘记不提交。

答案 6 :(得分:0)

这可以通过保持提交输入完整和一些创造性的 CSS 来跨浏览器完成。通过保持输入可用,您还可以保留对屏幕阅读器的支持。

    .no-submit-button {
      position: relative;
    }

    .hidden-submit {
      border: 0;
      clip: rect(0, 0, 0, 0);
      height: 1px;
      margin: -1px;
      padding: 0;
      position: absolute;
      width: 1px;
    }
    <form class="no-submit-button">
      <input class="hidden-submit" type="submit" value="Submit">
    </form>