Aktives Mitglied
Hallo, Zusammen.
Es geht heute um das Plugin jQuery Validate. Ich habe in einem kleinen Formular eine Validierung, die auch klappt. In meiner JS-Datei sieht das so aus:
Das klappt auch soweit.
Das Formular soll nun beim Klick auf den Submit-Button über eine PHP-Datei versendet werden. Da klappt auch und sieht im Code so aus:
Jetzt habe ich folgende Situation: Ich klicke auf den Submit-Button. Die Felder werden über Validate geprüft und es ist ein Fehler. In dem Moment hat der Submit-Button meine Datei sendEmail.php schon aufgerufen, die über PHP auch noch mal validert und einen Fehler zurück liefert. Dadurch erscheitn die Fatal-Error-Ausgabe. Diese soll aber nur erscheinen, wenn es PRobleme beim E-Mail-Versand gibt.
Daher suche ich eine Möglichkeit die $.post-Funktion mit einer If-Abfrage zu umschließen die nur ausgeführt wird, wenn die Validierung durch $("#contactForm").validate erfolgreich abgeschlossen wurde. Also in etwa so (von mir ausgedacht!):
Gibt es so etwas? Nach zwei Stunden Foren und Beiträge durchlesen habe ich dazu bisher keine Lösung gefunden.
Wäre toll, wenn mir hier jemand dazu helfen kann. Danke!
Es geht heute um das Plugin jQuery Validate. Ich habe in einem kleinen Formular eine Validierung, die auch klappt. In meiner JS-Datei sieht das so aus:
Code:
$(function(){
$("#contactForm").validate({
onfocusout: false,
onkeyup: false,
focusCleanup: true,
rules: {
email: {email: true},
name: {minlength: 3},
message: {minlength: 10},
subject: {minlength: 5}
},
});
});
Das Formular soll nun beim Klick auf den Submit-Button über eine PHP-Datei versendet werden. Da klappt auch und sieht im Code so aus:
Code:
$("#contactForm").submit(function(){
name = $('name').val();
email = $('email').val();
subject = $('subject').val();
message = $('message').val();
data = $(this).serialize();
data = data + '&request_type=contact&lang=' + lang;
$.post('sendEmail.php', data, function(results){
if(results == 'true') {
$('#contactForm').fadeOut('fast', function(){
$('div#form_result').fadeIn('slow');
});
} else {
$('<label class="error" style="display: block;" for="email" generated="true">Fatal Error. Please contact us via Email!</label>' ).insertBefor( "#name" );
};
});
return false;
});
Daher suche ich eine Möglichkeit die $.post-Funktion mit einer If-Abfrage zu umschließen die nur ausgeführt wird, wenn die Validierung durch $("#contactForm").validate erfolgreich abgeschlossen wurde. Also in etwa so (von mir ausgedacht!):
Code:
if($("#contactForm").validate == 'success') {
};
Wäre toll, wenn mir hier jemand dazu helfen kann. Danke!