Asynchrone Formularübertragung mit petersilie.js

8

Ich versuche, ein Formular zu erstellen, das mit Parsley.js validiert und asynchron übergeben wird. Das Formular heißt #contactForm und die Übergabeschaltfläche ist #sendData. Der Fehler tritt auf, wenn ich auf ein leeres oder ungültiges Formular absende. Ich erwarte eine 'Fehler' Warnung von ungültigen Formulardaten, aber stattdessen geht es einfach weiter mit der Else Bedingung und die Daten werden von contactForm.php verarbeitet.

%Vor%

Richtige Lösung unten.

    
nobody 01.04.2013, 04:02
quelle

2 Antworten

38

So sollte Ihr Code aussehen.

%Vor%
  • Sie möchten das Ereignis Formular senden abfangen, nicht den Klick auf die Schaltfläche Senden. (Es gibt andere Möglichkeiten zum Senden eines Formulars - wie zum Beispiel das Drücken der Eingabetaste -, die keinen Klick auslösen, sondern auch behandelt werden müssen.)
  • Sie möchten immer die Standardaktion verhindern. Sie reichen Ihr Formular über Ajax ein, so dass Sie es nie auf traditionelle Weise einreichen möchten.
  • Es ist nicht notwendig, explizit mit === false zu vergleichen. (Parsley wird einen truthigen Wert zurückgeben, wenn das Formular gültig ist, benutze es einfach.)
  • $(document).ready(function() { ... ist $(function() { ... .
  • Setzen Sie sich auf einen Weg, um geschweifte Klammern zu platzieren. (Die gebräuchlichste Konvention in JS ist "asymmetrisch", d. H.% Co_de% in der Zeile, die die Anweisung gestartet hat.)
  • Ihre Kommentare sind überflüssig. (Sie sagen genau, was der Code sagt, also werden sie nicht benötigt.)

EDIT: In älteren Versionen von parsely (vor 2.x), verwenden Sie

%Vor%     
Tomalak 01.04.2013, 07:09
quelle
3

Das hat bei mir funktioniert:

%Vor%

Ja, es wird von petersaryjs.org Beispielen kopiert. Aber es funktioniert gut!

    
reenleedr 28.06.2014 08:29
quelle

Tags und Links