Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Addition dans script...

15 réponses
Avatar
AM
Bonjour,

dans le script suivant, je n'arrive pas
a faire l'addition des valeurs de differents boutons radio...
Le resultat est la concatenation des 4 valeurs...

Ou est le bleme ?

<SCRIPT language="javascript">
function verifChoix(vote)
{
var valCase1 = 0;
var valCase2 = 0;
var valCase3 = 0;
var valCase4 = 0;
var sommeCase = 0;
if (vote.Case1[0].checked) { valLogo1 = vote.logo1[0].value; };
if (vote.Case1[1].checked) { valLogo1 = vote.logo1[1].value; };
if (vote.Case1[2].checked) { valLogo1 = vote.logo1[2].value; };
if (vote.Case1[3].checked) { valCase1 = vote.Case1[3].value; };

if (vote.Case2[0].checked) { valCase2 = vote.Case2[0].value; };
if (vote.Case2[1].checked) { valCase2 = vote.Case2[1].value; };
if (vote.Case2[2].checked) { valCase2 = vote.Case2[2].value; };
if (vote.Case2[3].checked) { valCase2 = vote.Case2[3].value; };

if (vote.Case3[0].checked) { valCase3 = vote.Case3[0].value; };
if (vote.Case3[1].checked) { valCase3 = vote.Case3[1].value; };
if (vote.Case3[2].checked) { valCase3 = vote.Case3[2].value; };
if (vote.Case3[3].checked) { valCase3 = vote.Case3[3].value; };

if (vote.Case4[0].checked) { valCase4 = vote.Case4[0].value; };
if (vote.Case4[1].checked) { valCase4 = vote.Case4[1].value; };
if (vote.Case4[2].checked) { valCase4 = vote.Case4[2].value; };
if (vote.Case4[3].checked) { valCase4 = vote.Case4[3].value; };

sommeCase = valCase1 + valCase2 + valCase3 + valCase4;
if (sommeVote != 10) { alert("Saisie incorrecte, veuillez
vérifier vos 4 votes !" + sommeCase) };
}
</SCRIPT>


Le resultat est sous la forme 1234....

Merci de vos conseils
Allan

10 réponses

1 2
Avatar
François-Xavier GENDRIN
Bonjour,

dans le script suivant, je n'arrive pas
a faire l'addition des valeurs de differents boutons radio...
Le resultat est la concatenation des 4 valeurs...

Ou est le bleme ?

<SCRIPT language="javascript">
function verifChoix(vote)
{
var valCase1 = 0;
var valCase2 = 0;
var valCase3 = 0;
var valCase4 = 0;
var sommeCase = 0;
if (vote.Case1[0].checked) { valLogo1 = vote.logo1[0].value; };
if (vote.Case1[1].checked) { valLogo1 = vote.logo1[1].value; };
if (vote.Case1[2].checked) { valLogo1 = vote.logo1[2].value; };
if (vote.Case1[3].checked) { valCase1 = vote.Case1[3].value; };

if (vote.Case2[0].checked) { valCase2 = vote.Case2[0].value; };
if (vote.Case2[1].checked) { valCase2 = vote.Case2[1].value; };
if (vote.Case2[2].checked) { valCase2 = vote.Case2[2].value; };
if (vote.Case2[3].checked) { valCase2 = vote.Case2[3].value; };

if (vote.Case3[0].checked) { valCase3 = vote.Case3[0].value; };
if (vote.Case3[1].checked) { valCase3 = vote.Case3[1].value; };
if (vote.Case3[2].checked) { valCase3 = vote.Case3[2].value; };
if (vote.Case3[3].checked) { valCase3 = vote.Case3[3].value; };

if (vote.Case4[0].checked) { valCase4 = vote.Case4[0].value; };
if (vote.Case4[1].checked) { valCase4 = vote.Case4[1].value; };
if (vote.Case4[2].checked) { valCase4 = vote.Case4[2].value; };
if (vote.Case4[3].checked) { valCase4 = vote.Case4[3].value; };

sommeCase = valCase1 + valCase2 + valCase3 + valCase4;
if (sommeVote != 10) { alert("Saisie incorrecte, veuillez
vérifier vos 4 votes !" + sommeCase) };
}
</SCRIPT>


j'ai tendance à faire
sommeCase = -(- valCase1 - valCase2 - valCase3 - valCase4);

Mais je ne sais pas si c'est la bonne méthode ...

Avatar
Elegie
AM wrote:

Bonjour,

dans le script suivant, je n'arrive pas
a faire l'addition des valeurs de differents boutons radio...
Le resultat est la concatenation des 4 valeurs...


Les valeurs récupérées d'un contrôle de formulaire sont toujours de type
chaîne; il vous faut donc les convertir en nombre avant d'effectuer tout
calcul.

<URL:http://jibbering.com/faq/#FAQ4_21>

sommeCase = valCase1 + valCase2 + valCase3 + valCase4;


La meilleure méthode de conversion reste l'opérateur unaire '+'.
sommeCase = (+valCase1) + (+valCase2) // etc

Par ailleurs, il sera peut-être également utile, dans votre application:

[1] de valider le format avant d'effectuer le calcul - ainsi,
si votre utilisateur ne tape pas un nombre, vous pourrez intercepter
l'erreur et lui suggérer une correction. Une bonne expression
régulière fera un bon travail;

[2] d'arrondir les résultats faisant intervenir des approximations,
liées à la réprésentation des nombres en javascript (IEEE754):
<URL:http://jibbering.com/faq/#FAQ4_7>.


HTH,
Elegie.

Avatar
AM

heu rectification de quelques erreurs dans l'énoncé du script...

Bonjour,

dans le script suivant, je n'arrive pas
a faire l'addition des valeurs de differents boutons radio...
Le resultat est la concatenation des 4 valeurs...

Ou est le bleme ?

<SCRIPT language="javascript">
function verifChoix(vote)
{
var valCase1 = 0;
var valCase2 = 0;
var valCase3 = 0;
var valCase4 = 0;
var sommeCase = 0;
if (vote.Case1[0].checked) { valCase1 = vote.Case1[0].value; };
if (vote.Case1[1].checked) { valCase1 = vote.Case1[1].value; };
if (vote.Case1[2].checked) { valCase1 = vote.Case1[2].value; };
if (vote.Case1[3].checked) { valCase1 = vote.Case1[3].value; };

if (vote.Case2[0].checked) { valCase2 = vote.Case2[0].value; };
if (vote.Case2[1].checked) { valCase2 = vote.Case2[1].value; };
if (vote.Case2[2].checked) { valCase2 = vote.Case2[2].value; };
if (vote.Case2[3].checked) { valCase2 = vote.Case2[3].value; };

if (vote.Case3[0].checked) { valCase3 = vote.Case3[0].value; };
if (vote.Case3[1].checked) { valCase3 = vote.Case3[1].value; };
if (vote.Case3[2].checked) { valCase3 = vote.Case3[2].value; };
if (vote.Case3[3].checked) { valCase3 = vote.Case3[3].value; };

if (vote.Case4[0].checked) { valCase4 = vote.Case4[0].value; };
if (vote.Case4[1].checked) { valCase4 = vote.Case4[1].value; };
if (vote.Case4[2].checked) { valCase4 = vote.Case4[2].value; };
if (vote.Case4[3].checked) { valCase4 = vote.Case4[3].value; };

sommeCase = valCase1 + valCase2 + valCase3 + valCase4;
if (sommeCase != 10) { alert("Saisie incorrecte, veuillez
vérifier vos 4 votes !" + sommeCase) };
}
</SCRIPT>


Le resultat est sous la forme 1234....

Merci de vos conseils
Allan




Avatar
Bruno Desthuilliers
Bonjour,

dans le script suivant, je n'arrive pas
a faire l'addition des valeurs de differents boutons radio...
Le resultat est la concatenation des 4 valeurs...

Ou est le bleme ?

<SCRIPT language="javascript">


<script type="text/javascript">

function verifChoix(vote)
{
var valCase1 = 0;
var valCase2 = 0;
var valCase3 = 0;
var valCase4 = 0;
var sommeCase = 0;
if (vote.Case1[0].checked) { valLogo1 = vote.logo1[0].value; };


Je suppose que c'est supposé être valCase1 ?

if (vote.Case1[1].checked) { valLogo1 = vote.logo1[1].value; };


Note que si le test précédent a réussi, tu fais les tests suivants pour
rien.

if (vote.Case1[2].checked) { valLogo1 = vote.logo1[2].value; };
if (vote.Case1[3].checked) { valCase1 = vote.Case1[3].value; };

if (vote.Case2[0].checked) { valCase2 = vote.Case2[0].value; };
if (vote.Case2[1].checked) { valCase2 = vote.Case2[1].value; };
if (vote.Case2[2].checked) { valCase2 = vote.Case2[2].value; };
if (vote.Case2[3].checked) { valCase2 = vote.Case2[3].value; };

if (vote.Case3[0].checked) { valCase3 = vote.Case3[0].value; };
if (vote.Case3[1].checked) { valCase3 = vote.Case3[1].value; };
if (vote.Case3[2].checked) { valCase3 = vote.Case3[2].value; };
if (vote.Case3[3].checked) { valCase3 = vote.Case3[3].value; };

if (vote.Case4[0].checked) { valCase4 = vote.Case4[0].value; };
if (vote.Case4[1].checked) { valCase4 = vote.Case4[1].value; };
if (vote.Case4[2].checked) { valCase4 = vote.Case4[2].value; };
if (vote.Case4[3].checked) { valCase4 = vote.Case4[3].value; };


Bon, faudrait p'tet apprendre à faire des boucles... Tu en a une
première à faire sur les groupes de boutons radio (Case1, Case2 etc), et
une à faire sur les boutons du groupe.


sommeCase = valCase1 + valCase2 + valCase3 + valCase4;
if (sommeVote != 10) { alert("Saisie incorrecte, veuillez
vérifier vos 4 votes !" + sommeCase) };
}
</SCRIPT>


Le resultat est sous la forme 1234....


A ton avis, la valeur d'un bouton radio, c'est quel type de donnée ?
(petit rappel : en Javascript, l'opérateur '+' sert aussi à la
concaténation de chaines...)

Regarde du coté de string.parseInt().

HTH

Avatar
ASM
Bonjour,

dans le script suivant, je n'arrive pas
a faire l'addition des valeurs de differents boutons radio...
Le resultat est la concatenation des 4 valeurs...

Ou est le bleme ?

<SCRIPT language="javascript">
function verifChoix(vote)
{
var someCase = new Array();

var f = document.forms['vote'];
for(var i=1; i<5; i++) {
var c = f.elements['Case'+1];
for(var j=0; j<4; j++) {
if(c[j].checked) someCase[i] = c[j].value;
}
}
if(someCase.length<4) alert('Un choix a été omis');
else
alert('vous avez voté : '+someCase);
}


c'est quoi ce patakès où on a des :
valLogo et vote.logo1
au milieu des :
valCase et vote.Case
?

sans parler du sommeVote qui arrive comme un cheveu sur la soupe

var valCase1 = 0;
var valCase2 = 0;
var valCase3 = 0;
var valCase4 = 0;
var sommeCase = 0;
if (vote.Case1[0].checked) { valLogo1 = vote.logo1[0].value; };
if (vote.Case1[1].checked) { valLogo1 = vote.logo1[1].value; };
if (vote.Case1[2].checked) { valLogo1 = vote.logo1[2].value; };
if (vote.Case1[3].checked) { valCase1 = vote.Case1[3].value; };

if (vote.Case2[0].checked) { valCase2 = vote.Case2[0].value; };
if (vote.Case2[1].checked) { valCase2 = vote.Case2[1].value; };
if (vote.Case2[2].checked) { valCase2 = vote.Case2[2].value; };
if (vote.Case2[3].checked) { valCase2 = vote.Case2[3].value; };

if (vote.Case3[0].checked) { valCase3 = vote.Case3[0].value; };
if (vote.Case3[1].checked) { valCase3 = vote.Case3[1].value; };
if (vote.Case3[2].checked) { valCase3 = vote.Case3[2].value; };
if (vote.Case3[3].checked) { valCase3 = vote.Case3[3].value; };

if (vote.Case4[0].checked) { valCase4 = vote.Case4[0].value; };
if (vote.Case4[1].checked) { valCase4 = vote.Case4[1].value; };
if (vote.Case4[2].checked) { valCase4 = vote.Case4[2].value; };
if (vote.Case4[3].checked) { valCase4 = vote.Case4[3].value; };

sommeCase = valCase1 + valCase2 + valCase3 + valCase4;
if (sommeVote != 10) { alert("Saisie incorrecte, veuillez
vérifier vos 4 votes !" + sommeCase) };




--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
ASM

Le resultat est sous la forme 1234....


A ton avis, la valeur d'un bouton radio, c'est quel type de donnée ?
(petit rappel : en Javascript, l'opérateur '+' sert aussi à la
concaténation de chaines...)


tu fais la même remarque qu'Elegie
pourtant AM a parlé de concaténation

il n'a jamais parlé d'addition ...

Je n'ai donc pas vu d'erreur à ce niveau.
Enfin ... si j'ai bien capté ?


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
ASM
<SCRIPT language="javascript">
function verifChoix(vote)
{
var someCase = new Array();

var f = document.forms['vote'];
for(var i=1; i<5; i++) {
var c = f.elements['Case'+1];


correctif :

var c = f.elements['Case'+i];

for(var j=0; j<4; j++) {
if(c[j].checked) someCase[i] = c[j].value;
}
}
if(someCase.length<4) alert('Un choix a été omis');
else
alert('vous avez voté : '+someCase);
}



--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
ASM
<SCRIPT language="javascript">
function verifChoix(vote)
{



correctif :

function verifChoix() {
var k = 0;
var someCase = new Array();
var f = document.forms['vote'];
for(var i=1; i<5; i++) {
var c = f.elements['Case'+i];
for(var j=0; j<4; j++) {
if(c[j].checked) {
someCase[k] = c[j].value;
k++;
}
}
}
if(someCase.length<4) alert('Un choix a été omis');
else
alert('vous avez voté : '+someCase);
}


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
Bruno Desthuilliers

Le resultat est sous la forme 1234....


A ton avis, la valeur d'un bouton radio, c'est quel type de donnée ?
(petit rappel : en Javascript, l'opérateur '+' sert aussi à la
concaténation de chaines...)


tu fais la même remarque qu'Elegie
pourtant AM a parlé de concaténation

il n'a jamais parlé d'addition ...


Ah bon ?

"""
dans le script suivant, je n'arrive pas
a faire l'addition des valeurs de differents boutons radio...
Le resultat est la concatenation des 4 valeurs...
"""



Avatar
Olivier Miakinen

tu fais la même remarque qu'Elegie
pourtant AM a parlé de concaténation

il n'a jamais parlé d'addition ...


Subject :
*Addition* dans script...
Body :
dans le script suivant, je n'arrive pas
a faire *l'addition* des valeurs de differents boutons radio...
Le resultat est la *concatenation* des 4 valeurs...

JDÇJDR...

1 2