Bonjour,

Toujours dans la conception de mon formulaire et ayant au préalable résolué mes soucis grâçe à vous (et je vous en remercie). Je me suis attaqué à la partie (error-message).

Dans mon cas et dans un premier cas j'affiche une image avec une petite croix ainsi qu'une bordure lorsque l'utilisateur ne rempli pas le champ:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
				if($("#nom").val()==""){
					$(".border1").next(".error-message").fadeIn();
					$(".border1").css("border", "solid 2px #ff2d2d").fadeIn();
					valid=false;
				}
Dans un second cas je verifie aussi que ce qu'il a rentré correspond bien à l'expression régulière :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
				else if(!$("#nom").val().match(/^[a-z-ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]{2,15}$/i)){
						$(".border1").next(".error-message").fadeIn();
						$(".border1").css("border", "solid 2px #ff2d2d").fadeIn();
						valid=false;
Si tout est ok, alors (else) je fais un FadeOut sur ces deux éléments:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
				else{
					$(".border1").next(".error-message").fadeOut();
					 var div = $('.border1');
						$({alpha:1}).animate({alpha:0}, {
						duration: 500,
						step: function(){
							div.css('border-color','rgba(255,45,45,'+this.alpha+')');
							}
						});
					valid=true;
				}
Le problème c'est que le else s'applique à chaque submit, autrement dit on voit un fadeOut de la bordure à chaque clic.
J'aimerais evité cela, j'ai pensé à ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
				if($("#nom").val()=="true"{
					$(this).elementById('#nom').stop().animate();
				});
En gros, si la valid=true alors arreter l'animation, mais se n'est peut être pas le bon raisonnement, ni la bonne méthode.

J'aimerais avoir votre avis sur la question, existe t-il une méthode bien plus simple peut être ?

Merci par avance