2010-11-23 37 views
0

J'essaye de valider mon formulaire avant de le soumettre. Je l'essaie avec ce code ci-dessous, mais il soumet toujours les valeurs du formulaire:jQuery: valider avant de soumettre

$('#gestione_profilo').submit(function() { 

    $("#gestione_profilo").validate({ 

     rules: { 

      'person_data[document_number]': "required" 

     }, 

     messages: { 

      'person_data[document_number]': "required" 

     } 

    }); 


    form_data = $(this).serialize(); 

    $.ajax({ 

     url: "<?php echo url_for('profile/index') ?>", 
     type: "POST", 
     data: form_data, 
     success: function() { $("#forma_profile").unmask(); } 

     }); 

     $("#forma_profile").mask("Aggiornando dati..."); 

     return false; 

    }); 

Une aide?

Cordialement

Javier

Répondre

3

Vous devez appeler .validate() dans votre gestionnaire document.ready, car elle met en place validation (et sur un événement submit qui est déjà exécuté ici) il ne terme validation . Il devrait ressembler à ceci:

$(function() { 
    $("#gestione_profilo").validate({ 
    rules: { 
     'person_data[document_number]': "required" 
    }, 
    messages: { 
     'person_data[document_number]': "required" 
    }, 
    submitHandler: function(form){ 
     $.post("<?php echo url_for('profile/index') ?>", $(form).serialize(), 
     function() { 
      $("#forma_profile").unmask(); 
     }); 
     $("#forma_profile").mask("Aggiornando dati..."); 
    } 
    }); 
}); 

Cela implique aucun gestionnaire.submit() ajouté sur le formulaire (.validate() ce que cela en dessous), utilisez plutôt la submitHandler option qui ne fonctionne que lorsque le formulaire est valide, invalidHandler est sa contrepartie, qui s'exécute lorsque le formulaire est invalide.

+0

Merci, mais il ne démasque pas le formulaire, ni ne charge les valeurs introduites. – ziiweb

+0

@ user248959 - "charger les valeurs introduites" ... pouvez-vous expliquer? –

+0

Désolé ma faute, merci! – ziiweb