JQuery pb addition avec each

Par Olivier Roche, il y a 10 ans


Bonjour, je début avec JQuery et je n'arrive pas a faire une addition de champs identiques dans un total.

Le principe est un devis avec des lignes de facture qui produisent chacune un montant. Puis en bas le total fait la somme des différents montants.

J'ai essayé différentes solutions mais je n'obtient pas ce que je veux. Soit j'ai une concaténation (au lieu de 20€+10€=30€) j'ai 2010, sinon j'ai 20 puis 10 ou rien

$("input[role='montantht']").each(function(){ //récupération de la valeur de chaque input montantht if($(this).val()>0){ total1 = parseFloat($(this).val()); //me renvoi uniquement la valeur sans l'additionner à la précédente (normal!) total2 += parseFloat($(this).val()); //me renvoi rien total3 = parseFloat($(this).val()) + total3; //me renvoi rien } $("input[name='totalht']").val(total); });

Merci de votre réponse

3 réponses

Ferias Quarante, il y a 10 ans

1 - déclares tu bien ta variable total avant la boucle ? sinon la variable est locale à ta boucle
2 - initialises tu bien ton total à 0 avant la boucle ?
3 - que vaut un console.log($(this).val()) dans la boucle ?

Olivier Roche, il y a 10 ans

Effectivement l'erreur vient de là : ma variable n'était pas déclarée hors de la boucle.
Merci

Benjamin Derepas, il y a 10 ans

As tu essayer de définir une variable vide, et d'ajouter la somme à chaque fois ?

variable Total = 0; pour chaque input x = input.valeur Total = Total + x afficher Total