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
Réponse acceptée

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 ?

Benjamin Derepas
Réponse acceptée

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

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