/ / iCheck somme et soustraire des valeurs - jquery, html, events, icheck

iCheck somme et soustraire des valeurs - jquery, html, événements, icheck

En utilisant la bibliothèque de iCheck, j'ai un code HTML de base:

<form>
<input type="radio" name="pks" value="1">
<input type="radio" name="pks" value="2">
<input type="radio" name="pks" value="3">
<hr>
<input type="checkbox" name="op1" value="10">
<input type="checkbox" name="op2" value="20">
<input type="checkbox" name="op3" value="30">
<input type="checkbox" name="op4" value="40">
</form>

Alors j'ai mon jQuery:

$("input[name="pks"]").on("ifChecked", function(e) {
var $pkss = $(this).val();
$("input[type="checkbox"]").on("ifChecked", function(ev) {
var $ops = $(this).val();
sum = parseFloat($pkss) + parseFloat($ops);
// alert(sum);
$("#tt").text(sum)
});
$("input[type="checkbox"]").on("ifUnchecked", function(ev) {
var $ops = $(this).val();
sum = parseFloat($pkss) - parseFloat($ops);
// alert(sum);
$("#tt").text(sum)
});

});

Ce que je cherche à accomplir est très simplesans utiliser iCheck, mais étant donné que j’apprends cette bibliothèque et qu’il n’existe pas de documentation pour ce type d’opération utilisant iCheck (je n’en ai trouvé aucune), je dois "additionner" les valeurs de l’entrée radio à la case à cocher
Si l'entrée radio 1 est sélectionnée, la valeur est 1, puis cochez si une case a été cochée, puis additionnez cette valeur à la case d'option cochée:
comme: 1radio + 10checkbox = 11, donc 11 est mon résultat mais que faire si:
2radio + 10checkbox + 40checkbox alors = 52 ... correct ?, mais si l'utilisateur désélectionne l'une des cases à cocher, soustrayez cette valeur ... avec le code ci-dessus, kid of, ça marche ... J'arrive à résumer une radio et une case à cocher mais si je sélectionne un autre bouton radio, ne fait rien tant que je n'ai pas coché une autre case, mais la première case est ignorée et lorsque je désélectionne une case, le résultat est erroné ... Je ne peux pas le faire fonctionner avec iCheck ...

Réponses:

0 pour la réponse № 1

Le moyen le plus simple d’y parvenir est d’avoir une seule fonction qui fonctionne sur change des entrées radio et case à cocher. Cette fonction additionnera ensuite les valeurs de tous les éléments sélectionnés, au lieu d’ajouter ou de supprimer la valeur actuelle d’un total stocké.

Essaye ça:

$(":radio, :checkbox").change(updateTotal);

function updateTotal() {
var total = 0;
$(":radio:checked, :checkbox:checked").each(function () {
total += parseInt(this.value);
});
console.log(total);
}

Exemple de violon