OVH Cloud OVH Cloud

je m'arrache les cheveux :-(

17 réponses
Avatar
jll
D'abord : Bonne et heureuse année à toutes et tous !

Voici mon code pour multiplier deux champs et afficher le total
le premier champ me permet bien de récupérer un entier mais pas le
deuxième et je n'arrive pas à trouver pourquoi ! Surement enfantin,
mais je n'utilise que rarement javascript :-(

Merci d'avance pour votre aide

Jean-Louis

Le code du script :
<script type="text/javascript">
function f(o){

//trouver les valeurs et les convertir en Number
var parcyclo = +document.forms.form1.parcyclo.value;
var nbcyclos = +document.forms.form1.nbcyclos.value;

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.forms.form1.total.value = isNaN(total) ? 0:total;
}
</script>

Le code des deux champs à multiplier et celui du total :

<input name="parcyclo" type="text" id="parcyclo" size="6"
onblur="f(this)">
<strong>x</strong> Nb de cyclos :
<input name="nbcyclos" type="text" id="nbcyclos" size="6"
onblur="f(this)">
= <strong>Total :</strong>
<input name="total" type="text" id="total" size="10">

10 réponses

1 2
Avatar
L'ermite
Jean-Louis LAURENCE wrote:
Voici mon code pour multiplier deux champs et afficher le total
le premier champ me permet bien de récupérer un entier mais pas le
deuxième et je n'arrive pas à trouver pourquoi !


Le problème vient à priori de la syntaxe que tu utilises pour accéder aux
différents champs, pas franchement approuvée par le WC3.

Cette syntaxe-là devrait mieux fonctionner:

function f(o)
{
//trouver les valeurs et les convertir en Number
var parcyclo = +document.getElementById('parcyclo').value;
var nbcyclos = +document.getElementById('nbcyclos').value;

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.getElementById('total').value = isNaN(total) ? 0:total;
}


--
L'ermite

Avatar
Jean-Louis

Jean-Louis LAURENCE wrote:

Voici mon code pour multiplier deux champs et afficher le total
le premier champ me permet bien de récupérer un entier mais pas le
deuxième et je n'arrive pas à trouver pourquoi !



Le problème vient à priori de la syntaxe que tu utilises pour accéder
aux différents champs, pas franchement approuvée par le WC3.

Cette syntaxe-là devrait mieux fonctionner:

function f(o)
{
//trouver les valeurs et les convertir en Number
var parcyclo = +document.getElementById('parcyclo').value;
var nbcyclos = +document.getElementById('nbcyclos').value;

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.getElementById('total').value = isNaN(total) ? 0:total;
}


je vais essayer :-) c'est vrai que ça me parait plus agréable comme code

!

Merci
Jean-Louis


Avatar
Jean-Louis

Jean-Louis LAURENCE wrote:

Voici mon code pour multiplier deux champs et afficher le total
le premier champ me permet bien de récupérer un entier mais pas le
deuxième et je n'arrive pas à trouver pourquoi !



Le problème vient à priori de la syntaxe que tu utilises pour accéder
aux différents champs, pas franchement approuvée par le WC3.

Cette syntaxe-là devrait mieux fonctionner:

function f(o)
{
//trouver les valeurs et les convertir en Number
var parcyclo = +document.getElementById('parcyclo').value;
var nbcyclos = +document.getElementById('nbcyclos').value;

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.getElementById('total').value = isNaN(total) ? 0:total;
}


Ben c'est pas mieux pour le résultat, j'ai toujours total=0 en fait la

première var = parcyclo me donne bien un numérique, mais pas la seconde
var = nbcyclos
et c'est bien là que je m'arrache les cheveux, enfin ceux qui me restent :-)

Jean-Louis


Avatar
M. B.
"Jean-Louis LAURENCE" a écrit dans le message de
news:
D'abord : Bonne et heureuse année à toutes et tous !

Voici mon code pour multiplier deux champs et afficher le total
le premier champ me permet bien de récupérer un entier mais pas le
deuxième et je n'arrive pas à trouver pourquoi ! Surement enfantin,
mais je n'utilise que rarement javascript :-(

Merci d'avance pour votre aide

Jean-Louis

Le code du script :
<script type="text/javascript">
function f(o){

//trouver les valeurs et les convertir en Number
var parcyclo = +document.forms.form1.parcyclo.value;
var nbcyclos = +document.forms.form1.nbcyclos.value;

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.forms.form1.total.value = isNaN(total) ? 0:total;
}
</script>

Le code des deux champs à multiplier et celui du total :

<input name="parcyclo" type="text" id="parcyclo" size="6"
onblur="f(this)">
<strong>x</strong> Nb de cyclos :
<input name="nbcyclos" type="text" id="nbcyclos" size="6"
onblur="f(this)">
= <strong>Total :</strong>
<input name="total" type="text" id="total" size="10">


Bonjour.

1°) Je ne comprend pas le role du caractere '+'.
2°) Peut etre en forcant une conversion vers un entier ou un reel :

var parcyclo = parseInt(document.forms.form1.parcyclo.value);
var nbcyclos = parseInt(document.forms.form1.nbcyclos.value);


ou parseFloat() si c'est des reels.

MB

Avatar
Olivier Miakinen
Le 01/01/2005 08:35, M. B. a cité plusieurs dizaines de lignes avant
d'ajouter :

1°) Je ne comprend pas le role du caractere '+'.


C'est pour convertir la chaîne en entier (cf. un article de YD d'il y a
deux ou trois jours).

2°) Peut etre en forcant une conversion vers un entier ou un reel :


Ben voilà, n'est-ce pas. ;-)


Cela étant dit, merci de bien lire la page suivante :
<http://www.giromini.org/usenet-fr/repondre.html>

En particulier le paragraphe 3.a :
<http://www.giromini.org/usenet-fr/repondre.html#3>

Avatar
Jean-Louis
J'ai aussi essayé avec parseInt et parseFloat, toujours la même chose :
la première variable contient bien un numérique entier la seconde me
retourne un NaN
Alorssse merci d'avance pour une soluce :-)
Jean-Louis
Avatar
Moustique
"Jean-Louis LAURENCE" a écrit
D'abord : Bonne et heureuse année à toutes et tous !


A toi aussi.


Voici mon code pour multiplier deux champs et afficher le total
le premier champ me permet bien de récupérer un entier mais pas le
deuxième et je n'arrive pas à trouver pourquoi ! Surement enfantin,
mais je n'utilise que rarement javascript :-(

Merci d'avance pour votre aide

Jean-Louis



Le signe + n'a rien à faire dans la récupération des champs et
document.forms.form1.parcyclo.value ne se réfère à rien du tout. T'as omis
la balise <form name="velo">

J'ai fait les petites modification à ton code, il marche d'enfer.


<script type="text/javascript">
function f(o){

//trouver les valeurs et les convertir en Number
var parcyclo = document.velo.parcyclo.value;
var nbcyclos = document.velo.nbcyclos.value;

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.velo.total.value = isNaN(total) ? 0:total;
}
</script>

Le code des deux champs à multiplier et celui du total :
<form name="velo">
<input name="parcyclo" type="text" id="parcyclo" size="6" onblur="f(this)">
<strong>x</strong> Nb de cyclos : <input name="nbcyclos" type="text"
id="nbcyclos" size="6" onblur="f(this)">
= <strong>Total :</strong> <input name="total" type="text" id="total"
size="10">
</form>


Stéphane
La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com des envies de ballades ?
http://www.lorimier.com/chemin-des-cretes-du-jura l'évasion à un coup de
click !

Avatar
Bul
bonjour,
J'ai aussi essayé avec parseInt et parseFloat
var parcyclo = Number(document.velo.parcyclo.value);


var nbcyclos = Number(document.velo.nbcyclos.value);
@+


Avatar
Jean-Louis
ben :-(
même là j'ai toujours 0 en résultat donc un NaN :-(

me reste plus beaucoup de cheveux :-(

Jean-Louis
Avatar
Jean-Louis
Voilà ou j'en suis :

le script :

<script type="text/javascript">
function f(o){

//trouver les valeurs et les convertir en Number
var parcyclo = Number(document.velo.parcyclo.value);
var nbcyclos = Number(document.velo.nbcyclos.value);

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.velo.total.value = isNaN(total) ? 0:total;
}
</script>


extrait du formulaire :

<form name="velo" method="post" action="fichier.php" id="velo">
<input name="parcyclo" type="text" id="parcyclo" size="6" onblur="f(this)">
<strong>x</strong> Nb de cyclos :
<input name="nbcyclos" type="text" id="nbcyclos" size="6"
onblur="f(this)">
= <strong>Total :</strong>
<input name="total" type="text" id="total" size="10">
</form>

avec ça j'ai plus un seul numérique dans les var !

Avec ce qui suit j'ai la var parcyclo qui s'affiche dans total
<script type="text/javascript">
function f(o){

//trouver les valeurs et les convertir en Number
var parcyclo = Number(document.forms.velo.parcyclo.value);
var nbcyclos = Number(document.forms.velo.nbcyclos.value);

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.velo.total.value = isNaN(parcyclo) ? 0:parcyclo;
}
</script>



avec ce qui suit j'ai la var nbcyclos qui devrait s'afficher mais j'ai 0
donc un NaN :
<script type="text/javascript">
function f(o){

//trouver les valeurs et les convertir en Number
var parcyclo = Number(document.forms.velo.parcyclo.value);
var nbcyclos = Number(document.forms.velo.nbcyclos.value);

//calculer la multiplication
var total = parcyclo * nbcyclos;

//afficher le resultat
//(si c'est un nombre)
document.velo.total.value = isNaN(nbcyclos) ? 0:nbcyclos;
}
</script>

j'ai enlevé forms.
je finis dem'arracher le reste de toupet sur le dessus de mon crâne
dégarni :-(
Jean-Louis
1 2