Javascript: methode et concaténation ???

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

  1. var valeur= eval('document.formulaire.question' + i + '.value');

    répond-il à ton besoin ?
    1
    1. 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
      1. ne serais-ce pas plutot documents.forms.formulaire.question... ? au pire tu peux verifier avec firebug ou équivalent :)
        0
      2. 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
      3. 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
      4. 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