Bonjour,
Je suis à la recherche d'un plugin Jquery de validation de formulaire. Si vous en connaissez un bon, je suis preneur de vos liens :)
Quand je cherche un plugin moi jpasse par delicious : http://www.delicious.com/search?p=jquery+form+validation&chk=&context=main|&fr=del_icio_us&lc=
Par contre je n'en ai jamais utilisé :(
Salut, moi perso pour tester la validation d'un formulaire, je combine jquery et les expressions régulières.
Alors je ne pense pas que ça soit l'idéal, car si j'ai 50 trucs à vérifier, j'aurai 50 variables... mais j'en ai souvent 3-4 maxi donc le code passe bien, je trouve.
Là je te fais un exemple, avec le formulaire, et à droite, soit une croix ( false.png ) soit un 'V' ( true.png )
le formulaire :
<script type="text/javascript" src="js/valid.js"></script>
<form method=POST action= "./envoiMail.php" >
<label>Email</label>
<input id="mail" type=text name=email size=30 value="Entrez votre adresse e-mail">
<a class="ok-message"></a>
<a id="error"class="error-message"></a>
<input type="submit" value="Envoyer" id="envoyer" >
</form>
En fait à chaque input, je rajoute 2 boutons ( ok et erreur ).
Le css :
.error-message{
background: url(../img/false.png) center no-repeat;
padding: 0 0 0 30px;
float: right;
color: #ff5b5b;
height: 31px;
width: 32px;
margin-top: -5px;
border-left: 1px solid #777777;
}
.ok-message{
background: url(../img/true.png) center no-repeat;
padding: 0 0 0 30px;
float: right;
height: 31px;
width: 32px;
color: #54b00a;
margin-top: -5px;
border-left: 1px solid #777777;
}
et la page valid.js
$(function(){
$("#error").show(); $("#error").prev(".ok-message").hide();
a=0;
$("#mail").keyup(function(){
if (!$("#mail").val().match(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/))
{
$("#error").prev(".ok-message").hide();
$("#error").show();
a = 0;
}
else
{
$("#error").hide();
$("#error").prev(".ok-message").show();
a = 1;
}});
$("#envoyer").click(function(){
else if(a==0){valid = false; alert('Veuillez remplir votre adresse mail');}
else{valid = true}
return(valid);
});
});
Donc en fait if (!$("#mail").val().match(/^([A-Za-z0-9_-.])+\@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/)) c'est l'expression régulière qui vérifie si c'est alphanumérique, avec un @, encore de l'alphanumérique et entre 2 et 4 caractères après le dernier "." ( genre .com )
Je ne m'y connais pas assez pour bien t'expliquer les expressions régulières, et le js n'est pas optimal, mais ça marche.
Et comme d'hab, merci à grafikart pour un de ses tutos ;)
le tuto sur les expressions régulières : http://www.grafikart.fr/tutoriels/php/expression-reguliere-86