Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/02/2011, 12h32   #1
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Par défaut Afficher tous les messages d'erreur

Bonjour,

Je voudrais afficher tous les messages d'erreur de mon formulaire en jQuery, mais il m'affiche seulement le premier message:

Code :
1
2
3
4
5
6
7
8
9
10
 
if (name == '') {
	$("#msg").slideDown(1000).html('<b>Veuillez entrer votre nom</b>');
	return false;
}
 
if (username == '') {
	$("#msg").slideDown(1000).html('<b>Veuillez entrer votre pseudo</b>');
	return false;
}
Code :
1
2
3
4
5
6
7
 
<div id="msg"></div>
<form id="formulaire" action="#" method="POST">
Name: <input type="text" name="name" id="name" /><br />
Username: <input type="text" name="username" id="username" /><br />
<input type="submit" name="send" value="GO" id="send" />
</form>
Merci
isitien est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 14h28   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
Bonjour,
c'est un grand classique, si tu mets return false après chaque test tu n'auras que le test NOK qui apparaîtra, il te faut concaténer les messages d'erreur.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
  var sMsg ="";
  if (name == '') {
    sMsg += '<li>Veuillez entrer votre nom</li>';
  }
  if (username == '') {
    sMsg += '<li>Veuillez entrer votre pseudo</li>';
  }
  if( szMsg.length){
    $("#msg").slideDown(1000).html( '<ul>' +sMsg +'<\/ul>');
    return false;
  }
return true;
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 04h12   #3
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Merci pour votre reponse, je n'ai pas compris cette partie du code:

voila le code entier:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
<html>
<head>
<style type="text/css">
 
</style>
 
 
 
<script src="jquery.js" type="text/javascript"></script>
 
<script type="text/javascript" >
$(document).ready(function() {
 
$("#send").click(function(){
 
		//Récupération des valeurs du formulaires
		var name = $("#name").val();
		var username = $("#username").val();
 
		var sMsg =""; // pour afficher le message retourne
 
  		if (name == '') {
    	sMsg += '<li>Veuillez entrer votre nom</li>';
				}
  		if (username == '') {
  		sMsg += '<li>Veuillez entrer votre pseudo</li>';
  				}
  		if( sMsg.length){
    	$("#msg").slideDown(1000).html( '<ul>' +sMsg +'<\/ul>');
    	return false;
  			}
  			else
  			{
  				$("#formulaire").hide();
  				$("#msg").fadeIn(1000).html( 'Merci');
 
 
  			}
return false;
 
		console.log(name);
 
	});
 
 
 
});
</script>
 
 
</head>
<body>
 
<div id="msg"></div>
<form id="formulaire" action="#" method="POST">
Name: <input type="text" name="name" id="name" /><br />
Username: <input type="text" name="username" id="username" /><br />
<input type="submit" name="send" value="GO" id="send" /> <span id="loading"></span>
</form>
 
</body>
</html>
isitien est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 09h26   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
Citation:
Envoyé par isitien Voir le message
Merci pour votre reponse, je n'ai pas compris cette partie du code:

on fait le test sur la longueur de la chaine sMsg, si l'on n'a rien mis dedans la longueur est égale à 0 et le bloc de la condition n'est pas exécuté, si on a rajouté du texte la longueur est non égal à 0 et on passe dans le bloc de la condition, c'est l'équivalent de
Code :
1
2
// if( sMsg.length != "") EDIT de la ligne grosse ânerie
if( sMsg != "")
par exemple
Code :
1
2
sMsg = '<li>Veuillez entrer votre nom</li>';
alert( sMsg.length); // affiche 34
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/02/2011, 12h08   #5
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
on ne peut pas faire comme ca sans le length:

isitien est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 19h55   #6
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
Citation:
Envoyé par isitien Voir le message
on ne peut pas faire comme ca sans le length:

comme tu as raison, c'est exactement cela, mauvais copier/coller non réajusté de ma part, je le corrige ça fait tâche!!!!!
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 06h41   #7
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Citation:
Envoyé par NoSmoking Voir le message
comme tu as raison, c'est exactement cela, mauvais copier/coller non réajusté de ma part, je le corrige ça fait tâche!!!!!
puisque sMsg = 0 donc length aura aucun role, merci pour la reponse
isitien est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 21h06   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Au passage tu devrais éviter d'utiliser l'évènement onclick sur le bouton d'envoi du formulaire car cela ne fonctionnera pas avec la touche "entrée" du clavier. On utilise habituellement l'évènement onsubmit dans la balise form du formulaire.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/02/2011, 21h28   #9
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Citation:
Envoyé par ABCIWEB Voir le message
Au passage tu devrais éviter d'utiliser l'évènement onclick sur le bouton d'envoi du formulaire car cela ne fonctionnera pas avec la touche "entrée" du clavier. On utilise habituellement l'évènement onsubmit dans la balise form du formulaire.
Quelque chose comme ca:

Code :
1
2
 
$("#formulaire").submit(function(){
isitien est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 22h41   #10
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Code :
1
2
3
4
5
6
7
8
9
10
$(function() 
{
 
		$('#formulaire').submit(function() 
			{
 
				alert('Message envoyé');
 
			});
});
EDIT Ha oui j'avais pas vu que tu faisais $(document).ready(function(),
ce qui revient donc au même. Maintenant ton formulaire doit pouvoir être envoyé par la touche "entrée" du clavier
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 02h00   #11
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Citation:
Envoyé par ABCIWEB Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
$(function() 
{
 
		$('#formulaire').submit(function() 
			{
 
				alert('Message envoyé');
 
			});
});
EDIT Ha oui j'avais pas vu que tu faisais $(document).ready(function(),
ce qui revient donc au même. Maintenant ton formulaire doit pouvoir être envoyé par la touche "entrée" du clavier
merci pour l'edit
isitien est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h24.


 
 
 
 
Partenaires

Hébergement Web