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