Ich bin neu bei AJAX und habe den Code dieser SO-Antwort hier verwendet jQuery Ajax POST-Beispiel mit PHP , um mit einem Formular auf einer WordPress-Website zu integrieren. Es funktioniert gut, aber ich habe Probleme bei der Integration mit jquery Validierung
Ich habe versucht, das Javascript von der obigen Seite in die Funktion submitHandler
unterhalb von
Mein Formular wird beim ersten Klick bestätigt. Wenn ich dann in die Eingabe tippe und nichts einreicht, muss ich ein zweites Mal klicken, damit das Formular korrekt mit AJAX gesendet wird. Unten ist ein Kinderspiel. Jede Hilfe ist dankbar, danke.
Ein jsfiddle meines Codes dachte, es würde einen Fehler in der Konsole protokollieren, da form.php nicht verlinkt ist
Der Job des submitHandler besteht darin, das Formular einzureichen, nicht um einen Formular-Submit-Event-Handler zu registrieren.
Der submitHandler wird aufgerufen, wenn das formm submit-Ereignis ausgelöst wird, in Ihrem Fall, anstatt das Formular zu senden, in dem Sie einen submit-Handler registriert haben. Wenn das Formular-send-Ereignis zum ersten Mal ausgelöst wird, wird das Formular nicht gesendet. Wenn es zum zweiten Mal abgefeuert wird, wird zuerst das Submit-Ereignis vom Validator verarbeitet, dann wird der von Ihnen registrierte Handler ausgelöst, der die Ajax-Anforderung auslöst.
Im submitHandler müssen Sie nur die Ajax-Anfrage senden, es ist nicht nötig, den Event-Handler zu registrieren
%Vor% Durch den Aufruf von $("#add-form").submit(function(){...})
wird das Formular nicht gesendet. Es bindet einen Handler, der angibt, was zu tun ist , wenn der Benutzer das Formular absendet. Deshalb müssen Sie zweimal einreichen: Das erste Mal ruft das Übergabehandler des Validierungs-Plugins auf, das die Daten überprüft und die Funktion ausführt, und das zweite Mal ruft den Übergabehandler auf, den Sie das erste Mal hinzugefügt haben.
Umgehe den Code nicht in .submit()
, sondern tue es direkt in deiner submitHandler:
-Funktion. Änderung:
zu:
%Vor% Sie brauchen nicht event.PreventDefault()
, das Validierungs-Plugin macht das auch für Sie.
Tags und Links jquery ajax jquery-validate