2008-10-16 5 views
6

Ich habe eine textbox, deren Eingabe von jQuery behandelt wird.Kann ich das Postback abbrechen, wenn der Benutzer in einer Textbox zurückkehrt?

$('input.Search').bind("keyup", updateSearchTextbox); 

Wenn ich Enter in der Textbox drücken, erhalte ich eine Postbacks, die bis alles vermasselt. Wie kann ich die Eingabe einfangen und ignorieren?

(Nur einen möglichen Vorschlag vorgreifen: Die Textbox hat ein <asp:textbox ... /> zu sein - ich habe es mit einem <input ... /> nicht ersetzen kann.)

Antwort

13

Ihr Browser automatisch das Formular abgesendet wird, wenn Sie die Eingabetaste drücken. Fügen Sie return false zu Ihrer updateSearchTextBox-Funktion hinzu, um dies abzubrechen.

wenn das nicht funktioniert, versuchen Sie dies:

<script language="JavaScript"> 

function disableEnterKey(e) 
{ 
    var key;  
    if(window.event) 
      key = window.event.keyCode; //IE 
    else 
      key = e.which; //firefox  

    return (key != 13); 
} 

</script> 

Und in Ihrem Code-Behind:

textbox.Attributes.Add("OnKeyPress","return disableEnterKey(event)"); 
+2

Inline-Skript-Ereignisse sind Naff .... vermeiden sie. Ich weiß, asp.net mag sie aber ..... grrrr der Bain meines Lebens – redsquare

0

Danke an alle, die geantwortet haben. Hier ist meine neue updateSearchTextbox Funktion, die perfekt funktioniert:

Verwandte Themen