ASP.Net页面输入密钥导致回发

Geo*_*rge 22 c# asp.net postback

我有一个aspx页面,它不应该回发.页面上有两个文本框,两个列表框和两个按钮.如果在任意点按下回车键,则第一个按钮被给予焦点并"点击",导致列表框内的选择丢失.

如何禁用此功能?有很多关于如何捕获输入按钮和执行方法的教程,但我可以找到一个关于如何简单地禁用整洁的"让我抓住我找到的第一个按钮并单击它"的功能.

Tim*_*ter 33

  • 您可以在窗体或面板上设置DefaultButton.这样你就可以完全控制会发生什么.
  • 在按钮上设置UseSubmitBehavior ="False".这会禁用Enter上的"AutoPostback".

如果我想完全阻止Enter回传,我宁愿第二个.


bev*_*qua 25

你在用jQuery吗?

如果是这样:

$(document).keypress(function(e)
{
    if(e.keyCode === 13)
    {
        e.preventDefault();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 这不会阻止回车键在textarea中插入一个空行吗? (4认同)

小智 7

使用以下代码禁用输入密钥导致回发.这段代码将阻止上面所有浏览器4.0中的回车键,除非在Textarea或Submit按钮本身按下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>
Run Code Online (Sandbox Code Playgroud)