2010-02-08 7 views
2

J'utilise le Jquery Validation Plugin pour les formulaires chargés via Ajax (formulaires dynamiques). Je sais que depuis Jquery 1.4, les événements en direct sur submit sont maintenant possibles. Maintenant le problème est que je veux montrer un message de confirmation après que le formulaire dynamique a été validé. Mon code ressemble à ceci:Jquery Validation Plugin, validation de forme dynamique

$('.dynamicForm').live('submit',function(){ 
    $(this).validate(); 
    if($(this).valid()){ 
     if(!confirm('Are you sure?')) 
     e.preventDefault(); 
    } 
}); 

Cela ne fonctionne pas comme prévu. D'une certaine manière, la confirmation apparaît en premier, puis la deuxième fois que je soumets le formulaire, c'est le moment de la validation. Des idées?

Répondre

3

D'une certaine manière cela semble fonctionner:

$('.dynamicForm').live('mouseover',function(){ 
    $(this).validate({ 
     submitHandler:function(form){ 
      if(confirm("Are you sure?")){ 
       form.submit(); 
      } 
     } 
    }); 
}); 
3

Utilisez la fonction submitHandler disponible dans le validate options:

$(".dynamicForm").validate({ 
    submitHandler: function(form) { //Only runs when valid 
    if(confirm('Are you sure?')) 
     form.submit(); 
    } 
}) 

De la documentation - submitHandler:

callback de gestion du réel soumettre lorsque le formulaire est valide. Obtient le formulaire en tant que seul argument. Remplace l'envoi par défaut Le bon endroit pour soumettre un formulaire via Ajax après sa validation.

+0

J'ai essayé. Mais le vrai problème concerne les éléments de forme dynamiques. C'est pourquoi j'ai utilisé live de Jquery(). – codegy

Questions connexes