0 0 Stimmen

jQuery: event.preventDefault() rückgängig machen

Frage von SmartUser | 26.05.2012 um 18:35 Uhr

Bei einer Submit-Form auf meiner Homepage benutze ich mit jQuery ein event.preventDefault. Allerdings möchte ich im Code je nach Umständen später doch wieder zulassen, dass die Form abgeschickt wird.

Ist es daher irgendwie möglich ein preventDefault() wieder zurück zu nehmen?

AntwortenPositivNegativDatumStimmen

Progger99

Profil anzeigen | Nachricht
Avatar
11 Stimme

Die Funktion, die du suchst heißt unbind(). Hier mal ein kleines Beispiel dazu:

$("#formx").submit(function(event) {
    event.preventDefault();
    // ...
});

// ...

$("#formx").unbind('submit');

Zuerst verhindern wir mit event.preventDefault(), dass die Form abgeschickt wird, wenn wir auf den Submit Button klicken. 

Anschließend nehmen wir dies mit unbind('submit') wieder zurück und es funktioniert wie vorher. Unbind sorgt dafür, dass ein vorher zugeordneter Event Handler wieder zurückgenommen wird. Im Beispiel geben wir mit 'submit' noch den Typ des Event Handlers an. Lassen wir diesen weg und schreiben nur $("#formx").unbind(), werden alle zugeordneten Event Handler entfernt.
29.05.2012 um 04:54 Uhr

AntwortenPositiv Negativ

Stefan Trost

Profil anzeigen | Nachricht
Avatar
00 Stimmen

Und hier nochmal eine andere Möglichkeit mit der selben Wirkung:

var eventhandler = function(e) {
   e.preventDefault();      
}
     
$("#formx").bind('submit', eventhandler);
 
//...
 
$("#formx").unbind('submit', eventhandler);

Dadurch sollte auch der Unterschied zwischen bind() und unbind() deutlich werden. Man verwendet bind(), um einen Event Handler zuzuordnen und unbind() um diesen wieder zu entfernen. Den Event Handler haben wir zuvor als Variable definiert, der die Funktion preventDefault zugeordnet wurde.
29.05.2012 um 19:35 Uhr

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.