2012-04-04 6 views
0

Mon problème est avec la validation de mon formulaire en utilisant Jquery. Ma validation fonctionnait bien avec la fonction validate seulement, mais j'ai ajouté l'option submit et la validation n'a pas lieu. Je voudrais valider mon formulaire et ensuite exécuter le soumettre.La validation Jquery ne fonctionne pas. Jquery - Javascript

$(document).ready(function() { 
    $('#ReqCreateForm').validate({ 
     invalidHandler: function (e, validator) { 
      var errors = validator.numberOfInvalids(); 
      if (errors) { 
       var message = errors == 1 
       ? 'Missing 1 field' 
       : 'Missing fields'; 
       $("div.error span").html(message); 
       $("div.error").show(); 
      } else { 
       $("div.error").hide(); 
      } 
     }, 
     onkeyup: false, 
     highlight: function (element) { 
      $(element).addClass('error'); 
     }, unhighlight: function (element) { 
      $(element).removeClass('error'); 
     } 
    }); 

    $('#ReqCreateForm').submit(function() { 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: $(this).serialize(), 
      success: function (result) { 
       alert("All Great!"); 
      }, 
      error: function (jqXhr, textStatus, errorThrown) { 
       alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
      } 
     }); 
     return false; 
    }); 
}); 

Merci à l'avance.

Solution:

La solution est très simple. Ajouté le code suivant à mon option de soumission, avant $.ajax.

if (!$(this).valid()) { 
     return false; 
    } 

Répondre

1

Vous devez appeler la fonction valide sur le gestionnaire de clic du bouton Soumettre comme suit:

if($('#ReqCreateForm').valid()) 
{ 
    //then do your thing 
} 
+0

Votre réponse me montre le chemin. Je vous remercie. –

0

J'utilise this plug-in pour submiting le formulaire en utilisant Ajax. Il a un événement appelé onbeforesubmit, où vous pouvez appeler les validations sans problème. Peut-être que tu veux l'essayer. Dans votre cas, vous devrez attraper l'événement avant de soumettre des données à l'appel ajax afin de le valider (dans le cas où vous ne voulez pas utiliser le plugin que j'ai suggéré)

+1

Merci pour votre réponse. J'ai trouvé un moyen simple de le faire. À votre santé. –

Questions connexes