cs_dekec
Messages postés12Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention 5 mai 2008
-
5 mai 2008 à 16:35
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
21 mars 2009 à 15:10
j'ai un formulaire dans lequel j'ai les champs quantité, prix unitaire
et total. je souhaite par exemple si je renseigne le champ quantité et
prix unitaire, le champ total affiche automatiquement le resultat du calcul
sans valider le formulaire;
je n'ai jamais utiliser javascript
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 5 mai 2008 à 17:06
Comment est construit ton formulaire?
C'est des trucs genre
Il suffit de mettre une action javascript sur le champ qte ou prixUnitaire du style onFocus (gain du focus) ou onBlur (perte du focus).
Ca parait bourrin, ça l'est surement mais bon moi je ferais comme ça :
Et il te faut écrire une fonction javascript avec une gueule comme ça :
function verifPrix() {
var quantite = document.getElementById("qte").value;
var prixUnitaire = document.getElementById("prixUnitaire").value;
houba222
Messages postés6Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention21 mars 2009 20 mars 2009 à 11:36
Bonjour,
Je débute... je suis en train de faire le même type de formulaire, ça marche impeccable.
Maintenant je m'attaque aux totaux, j'ai mis des onchange pour appeler la fonction ? est-ce bon ? en tout cas ça ne marche pas.....Quelqu'un peut m'aider ? Merci
<script type="text/javascript">
function calculTotalA()
{
var QuantiteA = document.getElementById("QuantiteA").value;
var PrixA = document.getElementById("PrixA").value;
if( QuantiteA != "" && PrixA != "")
{
document.getElementById("TotalA").value = QuantiteA * PrixA;
}
}
function calculTotalB()
{
var QuantiteB = document.getElementById("QuantiteB").value;
var PrixB = document.getElementById("PrixB").value;
if( QuantiteB != "" && PrixB != "")
{
document.getElementById("TotalB").value = QuantiteB * PrixB;
}
}
function calculTotalC()
{
var QuantiteC = document.getElementById("QuantiteC").value;
var PrixC = document.getElementById("PrixC").value;
if( QuantiteC != "" && PrixC != "")
{
document.getElementById("TotalC").value = QuantiteC * PrixC;
}
}
function calculMontant()
{
var TotalA = document.getElementById("TotalA").value;
var TotalB = document.getElementById("TotalB").value;
var TotalC = document.getElementById("TotalC").value;
document.getElementById("Montant").value = TotalA + TotalB + TotalC;
var Montant = document.getElementById("Montant").value;
document.getElementById("TVA").value = Montant * 1.196;
var TVA = document.getElementById("TVA").value;
document.getElementById("HT").value = Montant - TVA;
}
</script>
<form id="form_commande" method="post" action="">
<fieldset>
<legend>Commande</legend>
----
Désignation,
Quantité,
PU,
Total,
----
Article A,
,
10,00 €
,
,
----
Article B,
,
20,00 €
,
,
----
Article C,
,
30,00 €
,
,
----
,
,
Total Montant,
,
----
,
,
Dont TVA 19,6%,
,
----
,
,
Total HT,
,
</fieldset>
<label>
</label>
</form>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 20 mars 2009 à 12:07
Bonjour,
t'as remarqué que ça datait de quasi 1 an ?
t'as du bol que je reçoive une alerte !
mais nous serons peu à te lire !
uniquement ceux qui sont intervenu
>>est-ce bon ? en tout cas ça ne marche pas
si ça ne marche pas, ce n'est donc pas bon ! si ?
et qu'est-ce qui ne marche pas ?
si c'est le onchange... c'est parce que tu ne saisis rien dans le champ
appelle le calcul du total lors des calculs des lignes
ET : tu aurais pu ne mettre qu'une seul fonction plutôt que 3 !
suppose que tu ais 250 articles !
houba222
Messages postés6Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention21 mars 2009 20 mars 2009 à 13:06
Et non j'avais pas vu la date......
Alors merci pour ta réponse !!
Effectivement, j'ai réussi à tout mettre sur la même fonction, je ne sais pas si ce que j'ai fait est très orthodoxe, mais ça marche !
Seul souci, il me concatène mon addition Montant, pourtant ce sont des variables, pourquoi il les considère comme des chaînes ?
function calculTotal()
{
var QuantiteA = document.getElementById("QuantiteA").value;
var PrixA = document.getElementById("PrixA").value;
if( QuantiteA != "" && PrixA != "")
{
document.getElementById("TotalA").value = QuantiteA * PrixA;
}
var QuantiteB = document.getElementById("QuantiteB").value;
var PrixB = document.getElementById("PrixB").value;
if( QuantiteB != "" && PrixB != "")
{
document.getElementById("TotalB").value = QuantiteB * PrixB;
}
var QuantiteC = document.getElementById("QuantiteC").value;
var PrixC = document.getElementById("PrixC").value;
if( QuantiteC != "" && PrixC != "")
{
document.getElementById("TotalC").value = QuantiteC * PrixC;
}
var TotalA = document.getElementById("TotalA").value;
var TotalB = document.getElementById("TotalB").value;
var TotalC = document.getElementById("TotalC").value;
document.getElementById("Montant").value = TotalA+TotalB+TotalC;
var Montant = document.getElementById("Montant").value;
document.getElementById("TVA").value = Montant*1.196;
var TVA = document.getElementById("TVA").value;
document.getElementById("HT").value = Montant-TVA;
}
</script>
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 20 mars 2009 à 13:13
si tu t'adresses à un champ html, c'est une chaîne
regarde du coté de Number, parseInt
c'est l' inconvénient ( il y a des avantages !!!!! ) des langages où l'on
ne décrit pas le type des variables.
ch'tiote remarque :
et si tu saisis "abcdefgh" comme quantité ?
houba222
Messages postés6Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention21 mars 2009 20 mars 2009 à 14:01
Ah OK !
et oui si je mets abc = NaN
J'ai essayé avec parseInt : document.getElementById("Montant").value = parseInt(TotalA)+parseInt(TotalB)+parseInt(TotalC);
Donc je n'ai plus de concatenation mais bien une somme !
En revanche, le calcul s'effectue bizarrement : je saisis la qté d'1 article, le total article est caculé, le montant NaN, je saisi la qté d'1 2ème article, le total article est calculé, le montant NaN, et c'est une fois le 3ème article saisi que le montant est calculé !
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 20 mars 2009 à 14:11
1° regarde bien parseInt, il y a 2 paramètres
tu peux utiliser Number
>>je saisis la qté d'1 article...pas faites dans les 3 champs,
ben oui.
je me cite : et si tu saisis "abcdefgh" comme quantité ?
houba222
Messages postés6Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention21 mars 2009 20 mars 2009 à 15:20
J'ai rajouté le 2ème paramètre de parseInt, soit la "base" des nombres, soit :
document.getElementById("Montant").value = parseInt(TotalA,10)+parseInt(TotalB,10)+parseInt(TotalC,10);
Mais sans et avec, j'ai le même problème.
Avec 098, j'ai pas vu de différence ? C'était quoi le côté rigolo ?
Comme je l'ai dit, je suis en "bleue" en javascript !!
houba222
Messages postés6Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention21 mars 2009 20 mars 2009 à 20:27
Euh là moi pas comprendre ce que tu veux que je fasse des lignes alert, je les mets où et pour quoi faire ?
Sinon, j'avais essayé aussi avec number, ça faisait rien pour cause j'avais écris number au lieu de Number !
Et là miracle : ça marche !!!
Merci pour tout Bul3