/ / iCheck summiert und subtrahiert Werte - Jquery, HTML, Ereignisse, Icheck

iCheck summiert und subtrahiert Werte - jquery, html, events, icheck

Mit der Bibliothek von iCheck habe ich ein einfaches HTML:

<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>

Also habe ich meine 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)
});

});

Was ich zu erreichen versuche, ist sehr einfachohne die Verwendung von iCheck, aber da ich diese Bibliothek lerne und es keine Dokumentation für diese Art der Verwendung von iCheck gibt (ich konnte keine finden), muss ich die Werte vom Radioeingang zum Kontrollkästchen "summieren"
Wenn der Radoreingang 1 ausgewählt ist, ist der Wert 1, und überprüfen Sie, ob ein Kontrollkästchen aktiviert wurde. Wenn dies der Fall ist, summieren Sie diesen Wert zu dem markierten Optionsfeld:
wie: 1radio + 10checkbox = 11, also 11 ist mein ergebnis aber was wäre wenn:
2radio + 10checkbox + 40checkbox dann = 52 ... richtig?, aber wenn der Benutzer eines der Kontrollkästchen deaktiviert, dann subtrahieren Sie diesen Wert ... mit dem oben genannten Code von Kid, irgendwie funktioniert ... Ich schaffe es, ein Radio und ein Kontrollkästchen zusammenzufassen, aber wenn ich einen anderen Radioknopf auswähle tut nichts, bis ich ein anderes Ankreuzfeld anwähle, aber das erste Ankreuzfeld wird ignoriert. Wenn ich ein Ankreuzfeld abwähle, bekomme ich ein falsches Ergebnis ... Ich kann es nicht mit iCheck zum Laufen bringen ...

Antworten:

0 für die Antwort № 1

Der einfachste Weg, dies zu erreichen, ist eine einzige Funktion, die läuft change sowohl der Radio- als auch der Checkbox-Eingänge. Diese Funktion summiert dann die Werte aller ausgewählten Elemente, anstatt den aktuellen Wert aus einer gespeicherten Summe hinzuzufügen / zu entfernen.

Versuche dies:

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

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

Beispielgeige