Javascript: methode et concaténation ???

jemsss Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   -  
jemsss Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je n'arrive pas à faire une manip toute bête. Dans la fonction ci-dessous, ma variable "valeur" reste une chaine de caractère. Elle ne veut pas prendre le valeur de mon bouton radio. Comment faire ?
Merci d'avance.


<script language="javascript" type="text/javascript">
<!--
	function calcul() {
		var somme=0;
		for(i=1;i<=4;i++){
			var valeur= 'document.formulaire.question' + i + '.value';
			if(Number(valeur)==1) somme++;
		}
		alert(somme);
	}
-->
</script>

<form name="formulaire">
	<input type="radio" value="1" name="question1" />oui
	<input type="radio" value="0" name="question1" />non<br>

	<input type="radio" value="0" name="question2" />oui
	<input type="radio" value="1" name="question2" />non<br>

	<input type="radio" value="0" name="question3" />oui
	<input type="radio" value="1" name="question3" />non<br>

	<input type="radio" value="1" name="question4" />oui
	<input type="radio" value="0" name="question4" />non<br>
	
	<input type="button" value="Calculer" onclick="calcul();" />
</form>

2 réponses

Rctll Messages postés 499 Date d'inscription   Statut Membre Dernière intervention   1 520
 
var valeur= eval('document.formulaire.question' + i + '.value');

répond-il à ton besoin ?
1
jemsss Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour et merci
C'est exactement ce qui me fallait.

Par contre j'ai maintenant un 2e problème : cette variable prend comme valeur : "undefined".
Pourtant "document.formulaire.question1.value" me semble être le seule moyen de récupérer la valeur du bouton radio sélectionné.
0
Rctll Messages postés 499 Date d'inscription   Statut Membre Dernière intervention   1 520
 
ne serais-ce pas plutot documents.forms.formulaire.question... ? au pire tu peux verifier avec firebug ou équivalent :)
0
jemsss Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   17
 
Non puisque quand je mets "document.formulaire.question1[0].checked" il me revoie bien "true" ou "false" selon que mon bouton est sélectionné ou non...
Je ne saisis pas le problème avec ".value"
0
Rctll Messages postés 499 Date d'inscription   Statut Membre Dernière intervention   1 520
 
je me demande si les boutons radios ont bien une "value".
de mémoire il faut rechercher lequel des radio est coché, puis obtenir sa valeur .
0
jemsss Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   17
 
Bien vu. On dirait qu'un ensemble de bouton radio n'accepte pas ".value".
Il fallait d'abord vérifier quel bouton radio est selectionné puis récupérer la ".value" de ce bouton.

function calcul() { 
  var somme=0; 
  for(i=1;i<=4;i++){ 
    var select0= eval('document.formulaire.question'+i+'[0].checked'); 
    var select1= eval('document.formulaire.question'+i+'[1].checked'); 
    var valeur0= Number(eval('document.formulaire.question'+i+'[0].value')); 
    var valeur1= Number(eval('document.formulaire.question'+i+'[1].value')); 
    if(select0==true) somme=somme+valeur0; 
    if(select1==true) somme=somme+valeur1; 
    } 
  } 
  alert(somme); 
}


Merci
0