Afficher plusieurs messages dans un div

Résolu
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

Voici mon problème:
Je suis débutant en Javascript Jquery et je suis sur la gestion des erreurs sur les formulaires. Lorsqu'un utilisateur saisit une "mauvaise" valeur dans un champ, je fait apparaitre un message dans un div. Sachant que j'ai plusieurs <input> et donc plusieurs message d'erreurs, je voudrais pouvoir afficher, lorsque l'utilisateur fait par exemple deux erreurs (sur un input1 et un input2), les deux message d'erreurs à la suite. En gros, concaténer deux texte.
Voici une partie mon code:

$("#err").fadeIn().text("Veuillez saisir un code");

//"err" est une div

Merci d'avance
A voir également:

2 réponses

Utilisateur anonyme
 
Salut salut,

Tu utilises AJAX pour soumettre ton formulaire?
Peux tu poster un peu plus de code pour ce qui est du formulaire
0
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,
Merci d'avoir répondu ;)
Pour l'instant, je n'utilise pas AJAX.

Code:
$(document).ready(function() {
//controles champs formulaire
//Champs de type code en format texte
$("#CodeText").keyup(function()
{
if($("#CodeText").val() == "")
{
$("#err").fadeIn().text("Veuillez saisir un code");
}
else
if(!$("#CodeText").val().match(/^[a-z0-9_-]{3,16}$/i))
{
$("#err").fadeIn().text("Veuillez saisir un code valide");
}
else

{
$("#err").fadeOut().text("");
}
}
)

//Champs de type libellé en format texte
$("#LibText").keyup(function()
{
if(!$("#LibText").val().match(/^[a-z0-9]+$/i))
{
$("#err").fadeIn().text("Veuillez saisir un libellé valide");
}
else
{
$("#err").fadeOut().text("");
}
if($("#LibText").val() == "")
{
$("#err").fadeIn().text("Veuillez saisir un libellé");
}

}
)
................................................................................................................................................................................
J'affiche le texte d'erreur dans une div (id=err). Le soucis c'est que si il y a plusieurs erreurs, seule la dernière sera affichée dans le div. Je souhaite tt afficher.
0
Utilisateur anonyme
 
Les 2 input sont des champs texte?

Pour rester sur ta lancée, je pense que cela devrait marcher comme ça
var str1="Veuillez saisir un code\n";
var str11="Veuillez saisir un code valide\n";
var str2="Veuillez saisir un libellé valide\n";
var str22="Veuillez saisir un libellé\n";
var STR1="";
var STR2="";

$(document).ready(function() {

	$("#CodeText").keyup(function()
	{
		if($("#CodeText").val() == "")
		{	
			STR1=str1;
			$("#err").fadeIn().text(STR1+STR2);
		}
		else{
			if(!$("#CodeText").val().match(/^[a-z0-9_-]{3,16}$/i))
			{
				STR1=str11;
				$("#err").fadeIn().text(STR1+STR2);
			}
			else
			{
				STR1="";
				if(STR2==""){
					$("#err").fadeOut().text("");
				}else{
					$("#err").fadeIn().text(STR2);
				}
			}
		}
	}
	)

	$("#LibText").keyup(function()
	{
		if($("#LibText").val() == "")
		{
			STR2=str22;
			$("#err").fadeIn().text(STR1+STR2);
		}
		else{
			if(!$("#LibText").val().match(/^[a-z0-9]+$/i))
			{
				STR2=str2;
				$("#err").fadeIn().text(STR1+STR2);
			}
			else
			{
				STR2="";
				if(STR1==""){
					$("#err").fadeOut().text("");
				}else{
					$("#err").fadeIn().text(STR1);
				}
			}
		}
	}
	)
});


Après j'avoue que je ne m'y prends pas exactement de cette manière pour gérer les erreur car en multipliant les champs cela va vite devenir velu.
0
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Oui ce sont des champs textes. Tu gèrerai ça comment toi?
0
Utilisateur anonyme
 
Déjà est ce que le code que j'ai posté à le comportement que souhaites?
0
Utilisateur anonyme
 
En fait je dis ça mais y a pas grand chose à changé, je pensais à autre chose.
Et bien pour éviter d'avoir à gérer des concaténation de chaine, je mettrais sous chaque champ input un champ erreur propre (erreur_libelle, erreur_pseudo), comme ça lors de la vérification il vérifie juste son champ input et affiche la div erreur correspondante sans se préoccuper de savoir si d'autre champ génèrent des erreurs à ajouter à la chaine .
Si c'est pas clair n'hésite pas ;)
0
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Bonne idée, je compte ensuite utiliser AJAX et PHP ensuite. Du coup, je pense qu'il est possible de renvoyer des message d'erreur à partit du code PHP (via AJAX et XMLHttpRequest) vers la div de son choix (dis moi si je me trompe).
Merci encore de ton aide. C cool d'aider les débutants ;)
0
Utilisateur anonyme
 
Oui tu pourras soumettre dynamiquement un formulaire vers le traitement PHP si tu le souhaites ;).

Y a pas de problème ça fait plaisir!! Bon courage
0