Probléme de formulaire

seb360 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

voici mon formulaire:
<form>
<input type="text" id="cfe" placeholder="coût de fonctionnement et entretien"/>
<input type="text" id="man" placeholder="manutention"/>
<input type="text" id="tnn" placeholder="tonnage nodule récupéré"/>
<input type="text" id="cmed" placeholder="coût de mise en décharge"/>
<input type="button" value="Calculer" onclick="javascript:document.getElementById('resultat13').innerHTML=(document.getElementById('tnn').value*document.getElementById('cmed').value)+document.getElementById('cfe').value+document.getElementById('man').value+'euros de depense net de fonctionnement';"/>
<p id="resultat13"></p>
</form>
le problème c'est que au lieu d'additionner il met les chiffre à la suite
c'est a dire
la multiplication se fait très bien imaginons elle donne 1000
et les deux autres chiffre sont 500 et 600
le résultat qu'il m'affiche est 1000500600euros de dépense net de fonctionnement
ou peut être l'erreur ????
merci

1 réponse

Utilisateur anonyme
 
Bonjour

Le problème, c'est que le + sert à deux choses bien différentes en javascript :
- à l'addition (comme tu l'espérais)
- à la concaténation (quand il s'agit de chaînes de caractères)
Comme ce que tu récupères avec document.getElementById('xxx').value est a priori du texte, javascript choisit la concaténation plutôt que l'addition.
Tu peux lui 'forcer la main' en convertissant explicitement ces textes en nombres avec parseFloat (parseInt si tu n'utilises que des entiers) :
<input type="button" value="Calculer" onclick="javascript:document.getElementById('resultat13').innerHTML=((document.getElementById('tnn').value*document.getElementById('cmed').value)+parseFloat(document.getElementById('cfe').value)+parseFloat(document.getElementById('man').value))+'euros de depense net de fonctionnement';"/> 
0
seb360 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
SA MARCHE MERCI BEAUCOUP ¨¨
0
Utilisateur anonyme
 
De rien :-)
0