Sie müssen die Dinge manuell mit einem AJAX-Aufruf an den Server erledigen. Dazu müssen Sie auch das Formular überschreiben.
Aber keine Sorge, es ist ein Kinderspiel. Hier ist eine Übersicht darüber, wie Sie mit Ihrem Formular arbeiten:
- Überschreiben Sie die Standard-Submit-Aktion (dank des übergebenen Ereignisobjekts, das über eine
preventDefault
Methode verfügt).
- Nehmen Sie alle erforderlichen Werte aus dem Formular
- eine HTTP-Anfrage auslösen
- Behandeln Sie die Antwort auf die Anfrage
Zuerst müssen Sie die Formularübermittlungsaktion wie folgt abbrechen:
$("#myform").submit(function(event) {
// Cancels the form's submit action.
event.preventDefault();
});
Und dann holen Sie sich den Wert der Daten. Nehmen wir einfach an, Sie haben ein Textfeld.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
});
Und dann eine Anfrage abfeuern. Nehmen wir einfach an, es ist eine POST-Anfrage.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
// I like to use defers :)
deferred = $.post("http://somewhere.com", { val: val });
deferred.success(function () {
// Do your stuff.
});
deferred.error(function () {
// Handle any errors here.
});
});
Und das sollte es ungefähr tun.
Hinweis 2: Zum Parsen der Formulardaten ist es vorzuziehen, ein Plugin zu verwenden . Es wird Ihr Leben wirklich einfach machen und eine nette Semantik liefern, die eine tatsächliche Aktion zum Senden von Formularen nachahmt.
Hinweis 2: Sie müssen keine Verzögerer verwenden. Es ist nur eine persönliche Präferenz. Sie können auch Folgendes tun, und es sollte auch funktionieren.
$.post("http://somewhere.com", { val: val }, function () {
// Start partying here.
}, function () {
// Handle the bad news here.
});