我想根据我输入的输入文本按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>
答案 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>