开发者

ASP.Net page enter key causing post back

开发者 https://www.devze.com 2023-01-25 20:46 出处:网络
I have an aspx page that postsback when it should not. there are two text boxes, two listboxes and two buttons on the page. if at any-point开发者_如何学Go the enter key is pressed the first button is

I have an aspx page that postsback when it should not. there are two text boxes, two listboxes and two buttons on the page. if at any-point开发者_如何学Go the enter key is pressed the first button is given focus and "clicked" resulting in a loss of selection within the listboxes.

How do I disable this? There are tons of tutorials on how to capture the enter button and execute a method but I could not find one on how to simply disable the neat "let me grab the first button I find and click it" feature mentioned above.


  • You could set the DefaultButton on the Form or a Panel. This way you have full control what happens.
  • Set UseSubmitBehavior="False" on your Buttons. This disables the "AutoPostback" on Enter.

I would prefer the second if i wanted to prevent Postbacks on Enter completely.


are you using jQuery?

if so:

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


Use the below code to disable enter key causing postback. This piece of code will block the enter key in all browsers 4.0 above, except when enter is pressed in a Textarea or on the Submit button itself.

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


Only put this on you ASP.Net TextBox control:

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


This is default behavior of a web application, you could take one of the tutorials that you found and hide that behavior, by simply abandoning the submit.


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

精彩评论

暂无评论...
验证码 换一张
取 消