Problème de calcul en javascript !!

Résolu/Fermé
pauline - 20 oct. 2011 à 19:35
 pauline - 20 oct. 2011 à 21:46
Bonjour,


l'idée de script que j'ai crée c'est :

tu as un produit à ajouter a ton panier quand clique y a une fonction qui prend le montant de ce produit par Exemple 500 £ . et le mettre dans un champs, et quand tu clique encore sur ce produit . la valeur 500 £ qu'on a ajouté sera écrasé ça veux dire il sera 1000 £

mais la fonction que j'ai met , il calcul pas la somme !! il affiche sur le champs 500500 !!

je suis nulle :s je sais

voici le code :

<!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(result){
var valeur1=document.forma.result.value;
}
document.forma.result.value=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" /></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()">Ajoutez au panier</a> </td>
</tr>
</table>
</body>
</html>

Merci d'avance

A voir également:

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...
0
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
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é :

<!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>
0
Merci bcp bcp ça marche très bien ^^ yopiiiiiiiiiiiii
0