ASP.Net页面回车键导致提交回发

28

我有一个aspx页面,它在不应该的时候进行了回发。页面上有两个文本框、两个列表框和两个按钮。如果在任何时候按下回车键,第一个按钮将获得焦点并被“点击”,导致列表框中的选择丢失。

如何禁用此功能?有很多教程可以捕获回车按钮并执行方法,但我找不到一个简单地禁用上述功能的好方法。


1
请参见https://dev59.com/LnI-5IYBdhLWcg3wR2Nr。 - Rory
6个回答

39
  • 您可以在表单或面板上设置DefaultButton,这样您就可以完全控制发生的情况。
  • 在您的按钮上设置UseSubmitBehavior="False"。这将禁用在按 Enter 键时自动提交表单。

如果我想要完全防止按 Enter 键时出现 Postback,我会更喜欢第二种方法。


如果它是一个ImageButton.. 那么解决方案是什么? - SRJ
1
@SRJ:你可以使用“Image”代替。或者看一下这个问题,它解决了这个问题:https://dev59.com/N3I_5IYBdhLWcg3wBuRs - Tim Schmelter
使用“asp:Panel”和按钮属性“UseSubmitBehavior”设置为false是我解决类似问题的方法。以下是源代码的一部分:https://pastebin.com/9hXJBrmk - Eric Milliot-Martinez

29

你是否正在使用jQuery?

如果是的话:

$(document).keypress(function(e)
{
    if(e.keyCode === 13)
    {
        e.preventDefault();
        return false;
    }
});

4
这会阻止回车键在文本区域插入空行吗? - Tony_Henrich
当焦点在用户名/密码文本框中时,按下回车键应该触发提交行为,但这也会停止提交行为。 - sohaiby
很棒的解决方案。@sohaiby @Tony_Henrich 将 document 替换为一个选择器,以精确地定位应该抑制 Enter 键的输入框非常容易。然而,通过使用纯 JS 来规避 jQuery 也很容易,尽管毫无意义。 - Roland

9
使用以下代码禁用回车键导致的页面回传。这段代码将在所有4.0以上版本的浏览器中阻止回车键,除非在文本区域或提交按钮上按下回车键。
<script language="JavaScript">
var nav = window.Event ? true : false;
if (nav) {
window.captureEvents(Event.KEYDOWN);
window.onkeydown = NetscapeEventHandler_KeyDown;
} else {
document.onkeydown = MicrosoftEventHandler_KeyDown;
}

function NetscapeEventHandler_KeyDown(e) {
if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') { 
return false; 
}
return true;
}

function MicrosoftEventHandler_KeyDown() {
if (event.keyCode == 13 && event.srcElement.type != 'textarea' && 
event.srcElement.type!= 'submit')
return false;
return true;
}
</script>

1
我尝试使用很多不同的JavaScript事件处理程序来取消在Enter键上提交ASP表单,但是它们都不如这个好用。我甚至可以将“return false;”行更改为另一个JavaScript方法,以便始终提交我想要的数据。谢谢! - John Suit

3

只需将此代码添加到您的ASP.Net文本框控件中:

<asp:TextBox ID="TextBox1" runat="server"
   onkeydown = "return (event.keyCode!=13);" >
</asp:TextBox>

1
<body onkeydown = "return (event.keyCode!=13)">

1

这是 Web 应用程序的默认行为,您可以参考其中一个教程并通过放弃提交来隐藏该行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接