Javascrip / HTML formulaire de calcul
Jules_2569
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
Jules_2569 Messages postés 52 Date d'inscription Statut Membre Dernière intervention -
Jules_2569 Messages postés 52 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un script pour faire le calcul des prix, tout fonctionne parfaitement sauf que j'ai essayé plusieurs combinaisons différentes et je n'arrive toujours pas a faire une promotion en euro, juste en pourcentage, je sais pas pourquoi, a chaque fois que j'essaye je ne peux pas écrire sur le champs input de la promo en euro.
Les données ne sont pas entrés en base de données c'est juste pour l'affichage des chiffres avant de valider le formulaire. seul la quantité est le prix unitaire hors taxe sont inscrit en base de données.
J'ai un script pour faire le calcul des prix, tout fonctionne parfaitement sauf que j'ai essayé plusieurs combinaisons différentes et je n'arrive toujours pas a faire une promotion en euro, juste en pourcentage, je sais pas pourquoi, a chaque fois que j'essaye je ne peux pas écrire sur le champs input de la promo en euro.
Les données ne sont pas entrés en base de données c'est juste pour l'affichage des chiffres avant de valider le formulaire. seul la quantité est le prix unitaire hors taxe sont inscrit en base de données.
function calcul_ht_ttc(event) // fonction de calcul { var quantity = $('input[name="quantity"]').val(); var prix_ht = $('input[name="prix_ht"]').val(); var total_ht = $('input[name="total_ht"]').val(); var taux_tva = $('input[name="taux_tva"]').val(); var montant_tva = $('input[name="montant_tva"]').val(); var promo = $('input[name="montant_promo"]').val(); var pourcentage = $('input[name="pourcentage"]').val(); var prix_ttc = $('input[name="prix_ttc"]').val(); if(event.target.name=='prix_ttc') { var new_prix_ttc = (new_total_ht*(1+taux_tva/100)).toFixed(2); $('input[name="prix_ttc"]').val(new_prix_ttc); } else { var new_promo = (pourcentage*prix_ht)*quantity/(100).toFixed(2); $('input[name="montant_promo"]').val(new_promo); var new_total_ht = (prix_ht*quantity)-(new_promo).toFixed(2); $('input[name="total_ht"]').val(new_total_ht); var new_montant_tva = (new_total_ht*(taux_tva/100)).toFixed(2); $('input[name="montant_tva"]').val(new_montant_tva); var prix_ttc = (new_total_ht+(1*new_montant_tva)).toFixed(2); $('input[name="prix_ttc"]').val(prix_ttc); } $(function() // jQuery { $('.myForm input').bind('keyup mouseup', calcul_ht_ttc); // appel de la fonction de calcul lors d'un événement 'keyup' ou 'mouseup' }); }
<div class="modal fade" id="modal-default" > <form action="../process/Items.php" method="POST" class="myForm"> <div class="modal-dialog" role="document" > <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <div class="form-group"> <label>Qty:</label> <input type="number" class="form-control" id="quantity" name="quantity" value="1" step="any"> </div> <div class="form-group"> <label>Prix HT:</label> <input type="number" class="form-control" id="prix_ht" name="prix_ht" value="" step="any"> </div> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label>Promo %</label> <input type="number" class="form-control" name="pourcentage" value="" step="any"> </div> <!-- /.form-group --> <!-- /.form-group --> </div> <div class="col-md-6"> <div class="form-group"> <label>Promo Eur</label> <input type="text" class="form-control" name="montant_promo" value="" step="any" > </div> </div> </div> <div class="form-group"> <label>Total HT</label> <input type="number" class="form-control" name="total_ht" value="" step="any" readonly> </div> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label>Tx TVA</label> <input type="text" class="form-control" name="taux_tva" value=" <?php echo $vat['vat']; ?>" readonly> </div> <!-- /.form-group --> <!-- /.form-group --> </div> <div class="col-md-6"> <div class="form-group"> <label>Montant TVA</label> <input type="text" class="form-control" name="montant_tva" value="" step="any" readonly> </div> </div> </div> <div class="form-group"> <label>Prix TTC:</label> <input type="number" class="form-control" name="prix_ttc" value="" step="any" readonly> </div> </div> <div class="modal-footer"> <div align="left"> <button type="reset" class="btn btn-default" data-dismiss="modal">Cancel</button> <button type="submit" name="createItems" class="btn btn-space btn-primary">Ouvrir la demande</button> </form> </div> </div> </div> </div> </div> </div>
A voir également:
- Javascrip / HTML formulaire de calcul
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Calcul moyenne excel - Guide
- Editeur html - Télécharger - HTML
2 réponses
Bonjour,
Sans regarder plus loin...
Ne penses tu pas que tu as un souci au niveau de tes parenthèses ?
Le .toFixed(2) .. s'applique à quoi à ton avis ?
bien entendu...Idem pour tes autres calculs...
De plus, lorsque l'on travaille en javascript, le réflexe à avoir.. c'est de regarder la CONSOLE de son navigateur.
Je suppose que tu y verras des messages d'erreur...
Je vois également que tu as mis un attribut step sur ton champ promo
Sauf que... l'attribtut STEP ne sert que sur des inputs de type NUMBER ... hors toi, tu as mis un type TEXT....
PS: En Javascript il est préférable de travailler avec les ID des éléments au lieu des NAME.
Comme cela a été fait dans ta précédente question...
Pourquoi changer ??
Sans regarder plus loin...
var new_promo = (pourcentage*prix_ht)*quantity/(100).toFixed(2);
Ne penses tu pas que tu as un souci au niveau de tes parenthèses ?
Le .toFixed(2) .. s'applique à quoi à ton avis ?
bien entendu...Idem pour tes autres calculs...
var new_promo = (pourcentage*prix_ht)*quantity/(100).toFixed(2);
var new_total_ht = (prix_ht*quantity)-(new_promo).toFixed(2);
De plus, lorsque l'on travaille en javascript, le réflexe à avoir.. c'est de regarder la CONSOLE de son navigateur.
Je suppose que tu y verras des messages d'erreur...
Je vois également que tu as mis un attribut step sur ton champ promo
step="any"
Sauf que... l'attribtut STEP ne sert que sur des inputs de type NUMBER ... hors toi, tu as mis un type TEXT....
PS: En Javascript il est préférable de travailler avec les ID des éléments au lieu des NAME.
Comme cela a été fait dans ta précédente question...
Pourquoi changer ??
Au niveau des parenthèse de calcul ? je sais, pas j'ai les bons chiffres qui s’affichent.
Pour le .toFixed(2) c'est pour l'arrondis à 2 chiffres après la virgule. j'ai pas besoin de garder les éléments NAME, sauf pour le ht, et la quantité que je dois insérer dans une table, le reste des autres champs c'est juste pour l'affichage des chiffres avant insertion.
J'ai déjà regarder avec la console, je n'ai aucun message.
Pour le .toFixed(2) c'est pour l'arrondis à 2 chiffres après la virgule. j'ai pas besoin de garder les éléments NAME, sauf pour le ht, et la quantité que je dois insérer dans une table, le reste des autres champs c'est juste pour l'affichage des chiffres avant insertion.
J'ai déjà regarder avec la console, je n'ai aucun message.