Jquery fonction soustraction

Fermé
emmmmmy Messages postés 22 Date d'inscription jeudi 14 février 2019 Statut Membre Dernière intervention 23 septembre 2019 - Modifié le 18 sept. 2019 à 17:32
aure2015 Messages postés 93 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 30 mai 2020 - 24 sept. 2019 à 19:41
Bonjour, je reviens encore avec une question concernant Jquery.
J'ai donc effectuer un calcul et renvoyer la somme de celui-ci dans un tableau.
Celui physiquement affiché dans mon formulaire avec un total.

Mais j'ai la possibilité de supprimer l'un des éléments ce qui vient affecté mon tableau et son total.
Je dois trouver la fonction qui soustrait la valeur correspondante à mon élément dans mon total.

Voici mon code :

/////////// fonction qui ajoute mon coupon ///////////

$('#add_refund').click(function() {
            var amount = parseFloat($(this).prev().val());
            if (amount > 0.00) {
                $('#table_coupons').show();
                $('#coupons-header').show();
                $('#coupons').append(
                       getBlockValue('refunds', custom_refunds, amount)
                );
                custom_refunds++;

/////////// fonction qui ajoute la valeur de 
               mon coupon à mon total et qui l'affiche ///////////

                arrRefunds.push(amount);
                totalRefundsAmount = arrSum(arrRefunds);
                $('#js-bonus-result').html(totalRefundsAmount.toFixed(2) + '€');

/////////// fonction qui supprime mon coupon ///////////

                $('.remove-coupon').each(function () {
                    $(this).click(function () {
                        $(this).closest('tr').remove();

<bold>/////////// la fonction qui doit suprimer les valeurs
               (correspondantes à mon coupon) 
               de mon total  ///////////

                    });
                });
            }
        }); 



J'ai trouvé quelques méthodes : .pop() / .splice() / .filter() mais pas celle qui me convient réellement..


Un grand merci pour votre aide :)

2 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
18 sept. 2019 à 18:20
Bonjour,

Déjà, je pense que tu peux remplacer le code :
$('.remove-coupon').each(function () {
  $(this).click(function () {
      $(this).closest('tr').remove();
  });
});

par :
$('.remove-coupon').click(function () {
  $(this).closest('tr').remove();
});



Ensuite, pour le calcul.. pourquoi ne refais tu pas simplement la somme de arrRefunds une fois la (ou les ) ligne(s) supprimées... ?
0
emmmmmy Messages postés 22 Date d'inscription jeudi 14 février 2019 Statut Membre Dernière intervention 23 septembre 2019
Modifié le 19 sept. 2019 à 09:36
Justement le .each est là pour traiter chaque coupon individuellement.
Je cherche le moyen de soustraire un coupon en fonction de sa valeur.
Toutes les solutions sont bonnes à prendre mais je ne sais pas quelle fonction utiliser.
Je vais essayer comme cela.
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
19 sept. 2019 à 10:11

Justement le .each est là pour traiter chaque coupon individuellement.

Le code que je t'ai donné fait exactement la même chose que celui avec ton each...
le .each ne sert à rien.

Ensuite, au lieu de vouloir "soustraire" le montant retiré .... autant refaire le calcul complet...
0
emmmmmy Messages postés 22 Date d'inscription jeudi 14 février 2019 Statut Membre Dernière intervention 23 septembre 2019
19 sept. 2019 à 11:33
Il me refait le calcul avec les anciennes données.
Et ne mets pas à jour les champs.
0
emmmmmy Messages postés 22 Date d'inscription jeudi 14 février 2019 Statut Membre Dernière intervention 23 septembre 2019
19 sept. 2019 à 12:02
Le problème avec la fonction .remove() c'est qu'elle est censé supprimer les éléments sélectionnes et les valeurs associées. Sauf que dans mon cas, la fonction ne supprime pas les valeurs de l'input du coupon (ajoutées au champ 'total')
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
19 sept. 2019 à 13:45
Moi je découperait le code en trois ...

1 - Une fonction qui gère l'ajout de la ligne ( la tr ) dans le tableau
2 - Une fonction qui gère la suppression de la ligne
3 - Une fonction qui calcul la somme à partir des lignes du tableau.

Et lorsque tu fais un ajout ou une suppression de ligne du tableau.. tu relances la fonction de calcul...
0
aure2015 Messages postés 93 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 30 mai 2020 5
19 sept. 2019 à 22:05
Salut,
Si j'ai bien compris tu dois soustraire au total la valeur du coupon supprimé?

J'ai un peu de mal à lire ton code avec les commentaires mal placé mais si tu as réussi à augmenter la valeur du total lors d'un ajout, tu dois simplement faire le contraire quand tu le supprimé, tu récupère la valeur du coupon avant de le supprimer, tu récupères également la valeur du total, tu supprimes le coupon, tu réaffectes et tu modifies la valeur du total par la soustraction des deux valeurs.
0
emmmmmy Messages postés 22 Date d'inscription jeudi 14 février 2019 Statut Membre Dernière intervention 23 septembre 2019
23 sept. 2019 à 15:16
Bonjour,

Oui, c'est exactement ça.
Mais je ne trouve rien qui correspond à ma demande sur le net.
Sauriez-vous m'aider ?
0
aure2015 Messages postés 93 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 30 mai 2020 5
24 sept. 2019 à 19:41
Puis-je voir le code html?
0