Sie können event.preventDefault()
im Click-Handler für den Button vorlegen, um sicherzustellen, dass das HTML-Formular Standard submit
Ereignis nicht abfeuert (das ist, was auf der Seite erfrischend führt).
Eine andere Alternative wäre Hacker Form Markup zu verwenden: Es ist die Verwendung von <form>
und type="submit"
, die hier das gewünschte Verhalten in die Quere kommt; Diese führen schließlich dazu, dass Click-Events die Seite aktualisieren.
Wenn Sie noch <form>
verwenden, und Sie wollen nicht, benutzerdefinierte Klick-Handler schreiben, können Sie jQuery verwenden ajax
Methode, die für Sie das gesamte Problem weg abstrahiert von success
für Versprechen Verfahren auszusetzen, error
usw.
Zur Erinnerung können Sie Ihr Problem, indem sie entweder lösen:
• durch Standardverhalten in der Handhabung Funktion verhindert event.preventDefault()
mit
• Elemente verwenden, die kein Standardverhalten aufweisen (z. <form>
)
• Verwendung von jQuery ajax
(Ich habe gerade bemerkt, diese Frage aus dem Jahr 2008 ist, nicht sicher, warum es in meinem Feed auftauchte, jedenfalls, hoffentlich eine klare Antwort ist)
+1 für jQuery Form-Plugin. Es ist großartig, aber Sie haben das Ziel-Attribut falsch. Es ist nicht wie das Attribut 'Aktion' des Formulars; d.h. es ist nicht das Einreichungsziel. Von [Docs] (http://malsup.com/jquery/form/#optionsobject): ** target - Identifiziert die Elemente auf der Seite, die mit der Serverantwort aktualisiert werden sollen. ** – JCotton
@JCotton , danke - bearbeitet! – nickf
um fair zu sein, müssen Sie keine Bibliothek für AJAX verwenden. Bibliotheken werden mit Javascript geschrieben, daher existiert eine Nicht-Bibliothekslösung. Das heißt, ich bin zu 100% dafür, eine Bibliothek zu verwenden, um all die Lächerlichkeit und Komplexität zu abstrahieren, die mit einem AJAX-Aufruf verbunden sind. – Jason