webentwicklung-frage-antwort-db.com.de

ASP.Net-Seite Geben Sie den Schlüssel ein, der das Zurückschreiben verursacht

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. 

22
George
  • Sie könnten DefaultButton im Formular oder in einem Panel festlegen. Auf diese Weise haben Sie die volle Kontrolle darüber, was passiert.
  • Setze UseSubmitBehavior = "False" auf deinen Buttons. Dies deaktiviert das "AutoPostback" bei der Eingabe. 

Ich würde die zweite bevorzugen, wenn ich Postbacks on Enter vollständig verhindern wollte.

32
Rango

verwendest du jQuery?

wenn ja:

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

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

Setzen Sie dies nur auf Ihr ASP.Net TextBox-Steuerelement:

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

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.

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