C# ASP.Net页面输入键导致回发

C# ASP.Net页面输入键导致回发,c#,asp.net,postback,C#,Asp.net,Postback,我有一个aspx页面,在不应该的时候回发。页面上有两个文本框、两个列表框和两个按钮。如果在任何时候按下enter键,则第一个按钮将被聚焦并“单击”,导致列表框中的选择丢失 如何禁用此功能?关于如何捕获enter按钮并执行一个方法,有很多教程,但我找不到关于如何简单地禁用上面提到的整洁的“让我抓住找到的第一个按钮并单击它”功能的教程 这是web应用程序的默认行为,您可以选择找到的教程之一并隐藏该行为,只需放弃提交即可。是否使用jQuery 如果是: $(document).keypress(fun

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


如何禁用此功能?关于如何捕获enter按钮并执行一个方法,有很多教程,但我找不到关于如何简单地禁用上面提到的整洁的“让我抓住找到的第一个按钮并单击它”功能的教程

这是web应用程序的默认行为,您可以选择找到的教程之一并隐藏该行为,只需放弃提交即可。

是否使用jQuery

如果是:

$(document).keypress(function(e)
{
    if(e.keyCode === 13)
    {
        e.preventDefault();
        return false;
    }
});
  • 您可以在窗体或面板上设置。这样你就可以完全控制发生的事情
  • 在按钮上设置=“False”。这将在回车时禁用“自动回发”

如果我想完全阻止Enter上的回发,我宁愿使用第二种方法。

使用下面的代码禁用导致回发的Enter键。这段代码将阻止上述所有浏览器4.0中的enter键,除非在文本区域或提交按钮上按下enter键

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

var nav=窗口事件?真:假;
中频(导航){
window.captureEvents(Event.KEYDOWN);
window.onkeydown=NetscapeEventHandler\u KeyDown;
}否则{
document.onkeydown=MicrosoftEventHandler\u KeyDown;
}
函数NetscapeEventHandler_KeyDown(e){
如果(e.which==13&&e.target.type!='textarea'&&e.target.type!='submit'){
返回false;
}
返回true;
}
函数MicrosoftEventHandler_KeyDown(){
如果(event.keyCode==13&&event.srcement.type!='textarea'&&
event.srcement.type!=“提交”)
返回false;
返回true;
}

仅将此项放在ASP.Net文本框控件上:

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


这不会阻止enter键在文本区域插入一个空行吗?当焦点位于文本框中时,它还会停止enter键的提交行为,enter键应该在该文本框中调用提交(
,即用户名/密码文本框)
)这是一个很好的解决方案@sohaiby@Tony_Henrich很容易将
文档
替换为一个选择器,该选择器正好针对那些应该抑制Enter键的输入。使用普通JS绕过jQuery也很容易,但毫无意义。另请参见它是否是imagebutton。。解决方法是什么?@SRJ:你可以用
图像来代替。或者看一看解决这个问题的这个问题:使用“我试图使用这么多不同的javascript事件处理程序来取消asp表单在Enter时提交,但是没有一个能像这个一样工作;“行到另一个javascript方法,以便始终让Enter提交我想要的数据。谢谢!
<asp:TextBox ID="TextBox1" runat="server"
   onkeydown = "return (event.keyCode!=13);" >
</asp:TextBox>