2009-06-08 6 views
4

bien mon problème est que, j'ai un formulaire, que je veux valider les champs en utilisant jquery, si les données sont correctes je laisse le soumettre continuer, si non je désactiver le comportement par défaut en retournant faux (scie cela dans un tutoriel, here).
donc j'ai utilisé comme je l'ai dit la syntaxe de jquery, quand le document est prêt, je me suis inscrit pour l'événement de clic du bouton, le problème est que ce code n'est jamais exécuté. J'ai utilisé firebug mais aucune idée. rien ne se passe, alors voici mon code:
validation formulaire JQuery

$('#submitBtn').click(function() 
{ 
    var password1 = $('#form_password').val(); 
    var password2 = $('#form_password2').val(); 
    if(password1 != password2) 
    { 
     alert("the two passwords are not equal."); 
    } 
    return false; //to disable the default behavior of the submit btn 
}); 

Répondre

6

La bonne façon de vérifier une soumission de formulaire est de vérifier l'événement submit, pas d'événement click du bouton du formulaire. Changez cela autour de vous et ce que vous avez devrait fonctionner, bien que comme c'est le cas maintenant, il est toujours en train de faire return false; donc le formulaire ne sera jamais envoyé. Cela devrait le faire:

$('#myform').submit(function() { 
     var motPasse1 = $('#form_motPasse').val(); 
     var motPasse2 = $('#form_motPasse2').val(); 
     if(motPasse1 != motPasse2){ 
      alert("Les deux mot de passe ne sont pas identiques"); 
      return false; // cancel form submission if passwords don't match 
     } 
     return true; // return true if no errors 
}); 

Enfin, je l'espère, vous n'êtes pas garder la là alert à des fins de production. :) Il y a beaucoup, beaucoup mieux façons d'afficher les notifications d'utilisateurs qu'une alerte. Découvrez this question pour quelques suggestions, bien que quelque chose d'aussi simplement que d'avoir une erreur <div> et l'évanouissement est plus agréable que la boîte d'alerte par défaut du navigateur moche.

+0

merci mais le problème, c'est que le formulaire est envoyé chaque fois que j'essaie. Croyez-moi, je ne demanderais pas d'aide si ce n'est pas le cas. – abdelkarim

+0

Avez-vous déjà essayé de le lier à l'événement de soumission du formulaire? Comme je l'ai dit, si vous le liez à l'événement click du bouton, ce n'est pas un moyen fiable de le vérifier, car appuyer sur enter ne déclenchera pas l'événement. –

+0

en utilisant l'événement de soumission du formulaire, cela fonctionne très bien, merci beaucoup pour votre aide. – abdelkarim

0

votre problème est que vous êtes toujours soit faux, il doit se présenter comme suit:

$('#envoyerButton').click(function() 
{ 
     var motPasse1 = $('#form_motPasse').val(); 
     var motPasse2 = $('#form_motPasse2').val(); 
     if(motPasse1 != motPasse2) 
     { 
       alert("Les deux mot de passe ne sont pas identiques"); 
       return false; 
     } 
     return true; 
}); 
2

Puisque vous avez dit que vous utilisez un formulaire, vous pouvez lier à l'événement submit du formulaire:

$('form#id').submit(function(){ 
    // your validation code 
}); 
2

Vous devriez regarder le JQuery Validation Plugin. Il est géré par l'un des membres de l'équipe JQuery et permet de simplifier la validation des formulaires côté client.