如何在按Enter键时禁用自动提交行为?

时间:2010-01-07 14:25:22

标签: javascript button

我想根据我输入的输入文本按Enter键转到p2.htm或p3.htm。我还想手动点击submit1按钮提醒('no1')。

它适用于FireFox,但在IE6中,当我按下回车键时,它将提交提交按钮。

如何在IE 6中使用FireFox中的东西?

我使用javascript和jQuery。

<input id="Text2"  type="text"  onkeyup="if(event.keyCode==13){go2();}" /> 
<input id="Text3"  type="text"  onkeyup="if(event.keyCode==13){go3();}" /> 

<input id="submit1"  type="submit" value="submit" onclick="alert('no1')" />

<script type="text/javascript">
    function go2()
    {
        window.location = "p2.htm";
    }
    function go3()
    {
        window.location = "p3.htm";
    }
</script>

7 个答案:

答案 0 :(得分:28)

如果使用MVC3,您可以通过编辑BeginForm调用来禁用通过Enter提交,如下所示:

@using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Post, new { onkeydown = "return event.keyCode!=13" }))
{
    ...
}

答案 1 :(得分:24)

<form onsubmit="return false"></form>

通过单击提交按钮或按Enter键,这将停止表单进入下一页。

答案 2 :(得分:8)

这个功能可以解决问题:

function submitOnEnter(e, page) {
    var key;

    if (window.event)
        key = window.event.keyCode; //IE
    else
        key = e.which; //Firefox & others

    if(key == 13)
        window.location = page;
}

您应该这样称呼它:

<input id="Text2"  type="text"  onkeyup="submitOnEnter(event, 'p2.html')" /> 

答案 3 :(得分:6)

接受的解决方案的问题是普通提交按钮不再有效。您必须编写所有按钮的脚本。

<form onsubmit="return false"></form>

这是一个更好的解决方案,不会破坏非JavaScript提交按钮。当用户在表单输入上点击回车键时,此解决方案只是告诉浏览器不执行默认行为。

// prevent forms from auto submitting on all inputs
$(document).on("keydown", "input", function(e) {
  if (e.which==13) e.preventDefault();
});

答案 4 :(得分:5)

将输入类型从“提交”更改为“按钮”

答案 5 :(得分:2)

<%@taglib uri="/struts-tags"  prefix="s" %>
<html>
<head>
    <script type="text/javascript">
        function stopsubmit()
        {
            document.ourform.onsubmit="return true";
        }
        function pup()
        {
            return true;
        }
    </script>
</head>
<body>
    <form action="sa.jsp" name="ourform" onsubmit="return false">
        <s:submit action="" onclick="stopsubmit()" theme="simple"></s:submit>
    </form>
</body>

答案 6 :(得分:0)

您可以使用:

<script type="text/javascript">
    $(document).ready(function() {
       $(".div/formClass").bind("keypress", function(e) {
          if (e.keyCode == 13) {
             return false;
          }
       });
    });
</script>