Ich habe eine Aspx-Seite, die postback wenn es nicht sollte. Es gibt zwei Textfelder, zwei Listenfelder und zwei Schaltflächen auf der Seite. Wenn an einem beliebigen Punkt die Eingabetaste gedrückt wird, erhält die erste Schaltfläche den Fokus und "Klicken", was zu einem Verlust der Auswahl in den Listenfeldern führt.
Wie kann ich das deaktivieren? Es gibt Unmengen von Tutorials, wie man die Eingabetaste einfängt und eine Methode ausführt, aber ich könnte finden, wie man einfach die ordentliche Deaktivierung deaktiviert.
Ich würde die zweite bevorzugen, wenn ich Postbacks on Enter vollständig verhindern wollte.
verwendest du jQuery?
wenn ja:
$(document).keypress(function(e)
{
if(e.keyCode === 13)
{
e.preventDefault();
return false;
}
});
Verwenden Sie den folgenden Code, um die Eingabe-Taste zu deaktivieren, die ein Postback verursacht. Dieser Code blockiert die Eingabetaste in allen Browsern 4.0, außer wenn Enter in einem Textbereich oder auf der Schaltfläche "Senden" selbst gedrückt wird.
<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>
Setzen Sie dies nur auf Ihr ASP.Net TextBox-Steuerelement:
<asp:TextBox ID="TextBox1" runat="server"
onkeydown = "return (event.keyCode!=13);" >
</asp:TextBox>
Hierbei handelt es sich um das Standardverhalten einer Webanwendung. Sie können eines der gefundenen Lernprogramme verwenden und dieses Verhalten ausblenden, indem Sie einfach das Senden abbrechen.
<body onkeydown = "return (event.keyCode!=13)">