Как отключить автоматическое подчинение при нажатии клавиши ввода?

Я хочу нажать клавишу ввода, чтобы перейти к 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>

Ответ 1

Эта функция должна выполнить трюк:

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')" /> 

Ответ 2

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

Это остановит форму, перейдя на следующую страницу, либо нажав кнопку отправки, либо нажав кнопку ввода.

Ответ 3

Если вы используете MVC3, вы можете отключить отправку через Enter, отредактировав вызов BeginForm следующим образом:

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

Ответ 4

Измените тип ввода с "submit" на "button"

Ответ 5

Проблема с принятым решением заключается в том, что обычные кнопки отправки больше не работают. Вы должны script все кнопки.

<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();
});

Ответ 6

<%@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>