2012-04-09 5 views
0

onsubmit I fancybox PopupjQuery Validate Form - onsubmit Feuer fancybox Fenster

ich nur die fancybox Popup zeigen müssen feuern wollen, sobald Form bestätigt wird (JQUERY Validate verwendet)

Es scheint die fancybox Popup Popup nur wenn das Formular nicht korrekt ausgefüllt ist!

http://gloss-hair.com/old/owl/OWLFORM.html

Ich bin nicht sicher, wie das Popup fancybox Funktion nur zu laden, sobald das Formular validiert:

<script type="text/javascript"> 
$().ready(function() { 
    // validate the competition form when it is submitted 
    $("#ie9_competition").validate({ 
     errorPlacement: function (error, element) { 
      if (element.is(":checkbox")) { 
       error.appendTo(element.closest('div')); 
       } 
      else { 
       error.insertAfter(element.parent().find("label"));   
       } 
      }, 
     rules: {    
      sEmail: { 
       required: true, 
       email: true 
      }, 

     } 
    });   
}); 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".fancybox4").fancybox({ 
      'hideOnContentClick': true 
     }); 
    }); 
</script> 

Antwort

1

wie Versuchen dieser

$().ready(function() { 
     // validate the competition form when it is submitted 
     $("#ie9_competition").validate({ 
      errorPlacement: function (error, element) { 
       if (element.is(":checkbox")) { 
        error.appendTo(element.closest('div')); 
        } 
       else { 
        error.insertAfter(element.parent().find("label"));   
        } 
       }, 
      rules: {    
       sEmail: { 
        required: true, 
        email: true 
       }, 

      },   
      submitHandler: function(form){ 

       jQuery('.fancybox4').trigger('click'); 

      } 
     });   
    }); 

Dann Entfernen Sie das onsubmit Ereignis aus Formular-Tag. Also Ihr Formular-Tag ist wie

<form id="ie9_competition" method="post"> 
+0

Das ist super danke das funktioniert ein Vergnügen - ich habe es ursprünglich wie oben hinzugefügt - aber ich hatte einige Syntaxprobleme (Klammer oder etwas fehlt). Awesome Prost wieder – Jai

+0

Hmmm onsubmit muss auch das Formular löschen (sowie popup die fancybox Nachricht, die funktioniert). Würdest du wissen, wie ich das Formular löschen kann, sobald validiert und onsubmit vorwärts geht - danke nochmal im Voraus – Jai

+0

@JaimieLisaStow: Sie können "resetForm" verwenden, um die Validierungsfehlermeldungen zurückzusetzen und eventuell alle Feldwerte löschen zu müssen. –

2

jQuery Validierung Plugin können Sie definieren submitHandler, die ausführt, Wenn ein Formular gültig ist:

submitHandler: function(form){ 
    form.submit(); // submit the form 
    // code to show your fancybox here 
} 

Ihre validate() Code wird wie folgt aussehen:

$("#ie9_competition").validate({ 
errorPlacement: function (error, element) { 
    if (element.is(":checkbox")) { 
    error.appendTo(element.closest('div')); 
    } else { 
    error.insertAfter(element.parent().find("label"));   
    } 
}, 
rules: {    
    sEmail: { 
    required: true, 
    email: true 
    } 
}, 
submitHandler: function(form){ 
    form.submit(); // submit the form 
    // code to show your fancybox here 
} 
}); 

Sie können alle verfügbaren Optionen für die Methode validate() hier sehen: http://docs.jquery.com/Plugins/Validation/validate#toptions

+0

Hallo Dank für Ihre Antwort - Wie kann ich das Skript zu meinem Validate hinzufügen – Jai

+0

Auf die gleiche Weise haben Sie die _rules: _ und _errorPlacement: _ Optionen drin. submitHandler ist nur eine weitere Option wie diese. – azawaza

+0

PS: Ich habe meine Antwort oben bearbeitet, um Beispiel des vollständigen validate() Codes mit submitHandler Option hinzuzufügen. – azawaza