Javascript : addition de champs input

Fermé
Bert74 - 8 déc. 2008 à 00:26
 pakis - 26 avril 2011 à 18:24
Bonjour,

Voici la situation : j'ai 3 champs input d'un formulaire dans lequel j'envisage de remplir des valeurs numériques. Dans le même formulaire, j'ai un quatrième champ. J'aimerai afficher dans ce quatrième champs la somme numérique des 3 premiers champs.

Voici mon code :

<script language="javascript" type="text/javascript">
function send() {
document.form1.total.value = parseInt(document.form1.valeur_1.value) + parseInt(document.form1.valeur_2.value) + parseInt(document.form1.valeur_3.value);
}
</script>


<form id="form1" name="form1" method="post" action="">
valeur 1 :
<input type="text" name="valeur_1" id="valeur_1" onchange="send()"/>
<br /><br />
valeur 2 :
<input type="text" name="valeur_2" id="valeur_2" onchange="send()"/>
<br /><br />
valeur 3 :
<input type="text" name="valeur_3" id="valeur_3" onchange="send()"/>
<br /><br />
TOTAL :
<input type="text" name="total" id="total" />
<br />
</form>

Cela fonctionne quand les 3 premiers champs sont remplis mais lorsque 1 ou 2 champs sur 3 sont remplis, j'obtiens "NaN".
Comment faire pour avoir dans le champ total, la somme à partir de 1 champ rempli (en considérant qu'un champ non rempli=0) ?

Merci d'avance

1 réponse

Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
8 déc. 2008 à 00:44
Peut-être, tu peux essayer un truc comme ça :
val1 = parseInt(document.form1.valeur_1.value);
if (val1 == NaN) val1=0;
val2 = parseInt(document.form1.valeur_2.value);
if (val2 == NaN) val2=0;
val3 = parseInt(document.form1.valeur_3.value);
if (val3 == NaN) val3=0;
document.form1.total.value = val1 + val2 + val3


C'est pas forcément le plus simple, mais bon...
0
Remplacer => if (val1 == NaN) val1=0;

Par => if (isNaN(val1) == true ) val1=0;
0
salut j'ai un problème dans cette fonction

function taux()
{
var taux=parseFloat (document.getElementByName('taux').value);
var base=parseInt (document.getElementByName('base').value);
return base*taux;
}
0