Bonjour,

Alors voilà je viens ici pour recueillir un peu d'aide pour un script. J'ai débuté le Javascript hier et j'ai déjà un petit soucis. J'aimerais prendre la valeur du select afin de la mettre dans l'input, jusqu'à là tout marche. Ensuite, en fonction de la quantité, calculer pour que quand j'appuis sur le bouton "submit" le dernier input "resultat" affiche le résultat du calcul de l'input "prixunitaire" * l'input "quantite". J'ai déjà testé des choses mais rien ne marche, à un moment je suis arrivé à faire le calcul automatique mais, le bouton ne marchait pas donc j'ai abandonné cette solution. J'espère que ça ne paraîtra pas trop stupide pour certain.

Merci pour votre aide Smiley smile .


<script type="text/javascript">
		function facturer(select)
		{
			var valeur = select.options[select.selectedIndex].value;
			document.getElementById("prixunitaire").value = valeur;
		}

		function calcul()
		{
			var PrixUnitaire = document.getElementById("prixunitaire");
			var Quantite = document.getElementById("quantite").value;
			var Resultat = document.getElementById("resultat").value;

			Resultat.value = parseFloat(Quantite + '*' + PrixUnitaire);

			return false;
		}
		</script>



<form name="facturation" id="facturation">
		Produit <select onchange="facturer(this)">
					<option value="">Choisir</option>
					<option value="98">Citron</option>
					<option value="625">Pomme</option>
					<option value="20">Kiwi</option>
				</select>

		Prix unitaire <input type="text" name="prixunitaire" id="prixunitaire"/> €
		</br>
		Quantité <input type="text" name="quantite" value="1" id="quantite"/>
		</br>
		<button type="submit" name="submit" value="valider" id="valider" onclick="return calcul();">Valider</button>
		</br>
		Résultat total : <input type="text" name="resultat" id="resultat"/> €
</form>
Bonjour,

C'est peut-être parce que tu as oublié le ".value" pour récupérer le prix unitaire? Et sinon, essaie avec innerHTML, et sans spécifier ".value" pour Résultat:

                        var PrixUnitaire = document.getElementById("prixunitaire").[b]value[/b];
			var Quantite = document.getElementById("quantite").value;
			var Resultat = document.getElementById("resultat");

			Resultat.[b]innerHTML[/b] = parseFloat(Quantite * PrixUnitaire);

			return false;


Edit: et j'avais pas vu, mais je pense que ta multiplication ne fonctionne pas. Essaie comme j'ai fait pour voir (en enlevant les apostrophes et le +)
Modifié par GroquikMLV (20 Sep 2013 - 10:00)
si la variable Resultat représente un <input>, innerHTML n'a rien à faire là. Tes parseFloat doivent être pour chaque valeur et au passage, tu devrais éviter que tes variables JS commencent par une majuscule.

var prixUnitaire = document.getElementById("prixunitaire").value,
	quantite = document.getElementById("quantite").value,
	resultat = document.getElementById("resultat");

resultat.value = (parseFloat(Quantite) * parseFloat(PrixUnitaire));

Modifié par Zelalsan (20 Sep 2013 - 12:46)
En effet, j'avais oublié que le résultat était affiché dans un input Smiley smile (au passage, je trouve la petite citation dans ta signature excellente ^^)
Merci à vous Smiley smile . En effet maintenant ça marche. J'ai changé les variables du "resultat.value" qu'Zelalsan à gentiment corrigé et c'est bon et merci à GroquikMLV pour mon oubli Smiley cligne .