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. 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
  2. var valeur= eval('document.formulaire.question' + i + '.value');

    répond-il à ton besoin ?
    1