Problème de calcul en javascript !!
Résolu/Fermé
A voir également:
- Problème de calcul en javascript !!
- Calcul moyenne excel - Guide
- Telecharger javascript - Télécharger - Langages
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Logiciel calcul surface terrain gratuit - Télécharger - Outils professionnels
2 réponses
Bon je suis assez nulle en js mais je pense pas me tromper en disant qu'en javascript, le + ne signifie pas plus mais concatène deux chaine de caractère. Ça ne peut pas marcher comme ça. Il faut que tu mettes tes nombre dans Number().
Ex: document.forma.result.value =Number(valeur1)+Number(500)
Un petit "addition javascript" dans Google te donnait la réponse au 1er lien...
Ex: document.forma.result.value =Number(valeur1)+Number(500)
Un petit "addition javascript" dans Google te donnait la réponse au 1er lien...
vincebzh
Messages postés
137
Date d'inscription
lundi 22 mars 2010
Statut
Contributeur
Dernière intervention
7 mai 2013
29
20 oct. 2011 à 21:19
20 oct. 2011 à 21:19
Salut.
C'est déjà étonnant que qu'il se passe quelque chose chez toi quand tu clique sur le lien. Quand je l'ai testé tel quel, j'avais plein d'erreur JS.
Le problème viens du fait que la valeur du champs input est vide, du coup, il est interprété comme une chaine de caractère et non pas comme un chiffre, ce qui fait que l'addition est remplacée par une concaténation des deux valeurs.
Il faut pré remplir le champs avec la valeur 0.
Pour être sûr que le champs soit interprété comme un chiffre, il faut utiliser la fonction parseInt() pour passer d'une chaine de caractère à une valeur numérique.
Je te remet le script corrigé :
C'est déjà étonnant que qu'il se passe quelque chose chez toi quand tu clique sur le lien. Quand je l'ai testé tel quel, j'avais plein d'erreur JS.
Le problème viens du fait que la valeur du champs input est vide, du coup, il est interprété comme une chaine de caractère et non pas comme un chiffre, ce qui fait que l'addition est remplacée par une concaténation des deux valeurs.
Il faut pré remplir le champs avec la valeur 0.
Pour être sûr que le champs soit interprété comme un chiffre, il faut utiliser la fonction parseInt() pour passer d'une chaine de caractère à une valeur numérique.
Je te remet le script corrigé :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <script type="text/javascript"> function ordi(){ var valeur1=document.forma.result.value; document.forma.result.value= parseInt(valeur1) + 500; } </script> <style type="text/css"> <!-- #stonne { background:#fff; color: #FF0000; padding:4px; font-size:16px; border:none; } .style1 {font-weight: bold} --> </style> </head> <body> <table> <tr> <td> <strong>Votre Panier : </strong> </td> <td> <form name="forma"> <input type="text" name="result" disabled="disabled" size="8" id="stonne" value="0"/> </form> </td> </tr> </table> <br /> <table width="220"> <tr> <td width="212" height="74" align="center">Ordinateur <br /> 500 £ </td> </tr> <tr> <td align="center"><a href="#" onclick="ordi(); return false;">Ajoutez au panier</a></td> </tr> </table> </body> </html>