Javascript: methode et concaténation ???

Fermé
jemsss Messages postés 188 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 28 novembre 2019 - 29 juin 2010 à 02:37
jemsss Messages postés 188 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 28 novembre 2019 - 29 juin 2010 à 11:14
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 dimanche 11 mai 2008 Statut Membre Dernière intervention 30 juin 2010 1 409
29 juin 2010 à 10:03
var valeur= eval('document.formulaire.question' + i + '.value');

répond-il à ton besoin ?
1
jemsss Messages postés 188 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 28 novembre 2019 17
29 juin 2010 à 10: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 dimanche 11 mai 2008 Statut Membre Dernière intervention 30 juin 2010 1 409
29 juin 2010 à 10:22
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 jeudi 28 août 2008 Statut Membre Dernière intervention 28 novembre 2019 17
29 juin 2010 à 10:37
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 dimanche 11 mai 2008 Statut Membre Dernière intervention 30 juin 2010 1 409
29 juin 2010 à 10:41
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 jeudi 28 août 2008 Statut Membre Dernière intervention 28 novembre 2019 17
Modifié par jemsss le 29/06/2010 à 11:14
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