Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 09/08/2011, 13h35   #1
Invité de passage
 
Inscription : octobre 2005
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 13
Points : 2
Points : 2
Par défaut Récup valeur associée à un bouton radio (long)

J'essaye de récupérer la valeur entière associée à des boutons cochés par l'utilisateur, afin de donner une sorte de note (variable Counter), après avoir bien vérifié que l'un des boutons a bien été coché.
Bizarrement, j'arrive bien à vérifier qu'une case a bien été cochée, mais lorsque j'essaie d'afficher la valeur associée, je récupère NaN


Des idées pour corriger cette fonction?

------ Extrait de la fonction en head -------------------
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<SCRIPT language = javascript>
<!--
		function ValidateFields()
		{
			var MissingAnswers = "";
			var Counter = 0;	
		                     var Note = "Votre note est de " ;
if (!document.quest.R1[0].checked && !document.quest.R1[1].checked && !document.quest.R1[2].checked && !document.quest.R1[3].checked) {     MissingAnswers = MissingAnswers + "1, ";}
else {Counter = Counter + document.quest.R1.value;}
Counter = Counter + '';
if (MissingAnswers != "")
			{		window.alert("Il manque la/les réponse(s) suivante(s) : " + MissingAnswers);			}
else
			{                     window.alert("Votre note est de " +Counter);			}
 
 
		}
	//-->
	</SCRIPT>

---------------------------------------------------------------------
Tableau dans Body --------------

Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<FORM method = post name = "quest">
<TABLE border=1>
<TR>
<TD width = 30>N° :</TD>
<TD width = 400>L'affirmation</TD>
<TD width = 60 align = center>Tout à fait<br> d'accord</TD>
<TD width = 60 align = center>Plutôt <br>d'accord</TD>
<TD width = 60 align = center>Plutôt en<br>désaccord</TD>
<TD width = 60 align = center>Pas du tout<br>d'accord</TD>
</TR><TR>
<TD width = 30>1 :</TD>
<TD width = 400>Question posée</TD>
<TD width = 60 align = center><input  type = "radio" name = "R1" value = 1></TD>
<TD width = 60 align = center><input type = "radio" name = "R1" value = 2 ID="Radio1"></TD>
<TD width = 60 align = center><input type = "radio" name = "R1" value = 3 ID="Radio2"></TD>
<TD width = 60 align = center><input type = "radio" name = "R1"  value = 4 ID="Radio3"></TD>
</TR>
</TABLE>
<A href = "javascript:ValidateFields();">TERMINE</A> 
</FORM
brocexco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 14h11   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Code :
Counter = Counter + document.quest.R1.value;
Tu demandes le value de quel R1 ?
C'est d'autant plus étonnant que dans le if, tu distingues bien les différents cas
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/08/2011, 14h27   #3
Invité de passage
 
Inscription : octobre 2005
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 13
Points : 2
Points : 2
Citation:
Envoyé par Bovino Voir le message
Code :
Counter = Counter + document.quest.R1.value;
Tu demandes le value de quel R1 ?
Aie en effet: je pensais que les quatre boutons, - tous nommés R1 - , partageaient une valeur commune.
Si j'ai bien compris, je vais devoir multiplier par quatre le test:

if {Document.quest.R1[n].checked} {counter = counter + D...qu..R1[n].value}

c'est ca? Mais alors quel intérêt à donner une value à chaque R1 ?
brocexco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h16   #4
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Citation:
Envoyé par brocexco Voir le message
Si j'ai bien compris, je vais devoir multiplier par quatre le test:

if {Document.quest.R1[n].checked} {counter = counter + D...qu..R1[n].value}
c'est ca?
Plutôt comme ça pour bien faire (pas besoin de changer le code si tu rajoutes un radio bouton) :
Code :
1
2
3
4
5
6
7
8
9
10
11
var selected = false;
var i = 0;
for (i = 0; i < document.quest.R1.length; i++) {
  if (document.quest.R1[i].checked) {
    selected = true;
    Counter += document.quest.R1[i].value;
  }
}
if (!selected) {
  MissingAnswers = MissingAnswers + "1, ";
}
Citation:
Envoyé par brocexco Voir le message
Mais alors quel intérêt à donner une value à chaque R1 ?
Ben comment tu comptes savoir quel bouton radio a été sélectionné sinon (côté serveur) ?
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h13.


 
 
 
 
Partenaires

Hébergement Web