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">

7 réponses

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



Le code que t'a donné Moustique fonctionne parfaitement.
Le problème est : Quand la fonction s'exécute-t-elle ? onblur !
Tu es obligé de quitter ton deuxième champ pour que le résultat s'affiche
dans le troisième.
Si tu ne le quitte pas, tu auras toujours zéro en résultat.

--
A'tchao

Le Fou
http://perso.club-internet.fr/ehiller/
http://club.exocet.free.fr/
http://www.ffessm-cd84.com/

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

me reste plus beaucoup de cheveux :-(

Jean-Louis
De mon côté, je n'ai aucun soucis d'affichage... "Il marche d'enfer"

effectivement le code proposé par Moustique.

Peux-tu préciser les actions que tu fais avec la page et ton navigateur
/ son paramétrage ?

Avatar
Jean-Louis
la page s'affiche dans Mozilla, réaction idem dans ie6
en fait c'est un fichier .txt (formulaire) appelé par include dans une
page .php avec le script en <head> (serait-il mal placé ?)

je rentre une valeur pour parcyclo puis tab puyis une valeur pour
nbcyclos puis tab, et j'ai toujoutrs 0 dans total

Mui bien si ça marche chez toi, moi je vais changer de prénom et
m'appeler dorénavant Matthieu (y'a qu'un cheveu sur la tête à
Matthieu...:-) )
Avatar
PtiTom
la page s'affiche dans Mozilla, réaction idem dans ie6
en fait c'est un fichier .txt (formulaire) appelé par include dans une
page .php avec le script en <head> (serait-il mal placé ?)

je rentre une valeur pour parcyclo puis tab puyis une valeur pour
nbcyclos puis tab, et j'ai toujoutrs 0 dans total

Mui bien si ça marche chez toi, moi je vais changer de prénom et
m'appeler dorénavant Matthieu (y'a qu'un cheveu sur la tête à
Matthieu...:-) )

La question à la noix... Mais on ne sait jamais :

Peux-tu faire un "view source" de la page générée et soit le vérifier,
voire le poster ?

Avatar
Jean-Louis
voila tel qu'affiché en source (extraits)

<head>
.../...
<link rel="stylesheet" href="master.css">
<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>
</head>
<body bgcolor="#FFEEDD">
.../...
<form name="velo" method="post" action="cyclopizza.php" id="velo">
.../...
par cyclo :
<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">

Euros <strong>+ honoraires</strong>
.../...
</body>
</html>

une idée ?

Jean-Louis
Avatar
PtiTom
voila tel qu'affiché en source (extraits)

<head>
.../...
<link rel="stylesheet" href="master.css">
<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>
</head>
<body bgcolor="#FFEEDD">
.../...
<form name="velo" method="post" action="cyclopizza.php" id="velo">
.../...
par cyclo :
<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">

Euros <strong>+ honoraires</strong>
.../...
</body>
</html>

une idée ?

Jean-Louis


Alors là, je ne vois pas... Pour moi tout est OK.

NB : La remarque de "Le Fou" est-elle justifiée ? Sinon, je ne vois rien
d'autre :(

Avatar
Jean-Louis
J'ai trouvé !
Comme je n'avais plus qu'un cheveu et que je tenais absolument à le
sauver, j'ai fait une page vierge avec le code de Moustique et bien
entendu ça marche !
Alors en charchant bien, j'ai trouvé dans mon formulaire un autre champ
nbcyclos qui étatit vide et semait le bordel :-(

Pardon c'est ma très grande faute : manque d'attention ! :-(
J'ai plus qu'à m'acheter une moumoute et la manger :-)

Merci à tous pour vos encouragements et bonne année !
Jean-Louis
1 2