チェックされたボックスとチェックされていないボックスの値に基づいて、非表示のフォームファイルに追加および削除し、画面テキストを更新しようとしています。チェックされたすべてのチェックボックス値を正常に合計し、.eachを使用して非表示の入力フィールドを更新することができました。しかし、私は合計から値を差し引くのにかなりの時間を費やしています。
避けられない問題は、実際にチェックを外しているボックスではなく、最初にチェックしたボックスの値を差し引くことです。ボックスをIDで参照しようとしましたが、役に立たなかったようです。
$(document).on("click", ".activities .checkbox-select", function(event){
//event.preventDefault();
$(this).parent().addClass("selected");
//Checks the checkbox
$(this).parent().find(":checkbox").prop('checked', true);
var total = parseFloat($("#basePoints").val());
$(':checkbox:checked.activity').each(function() {
var activtyValues = 0;
activtyValues = parseFloat(this.value);
total += activtyValues;
//Update the screen value
$("#calulatedpoint").text(total);
//Update the hidden value
$("#calulatedPointsHidden").val(total);
});
});
$(document).on("click", ".activities .checkbox-deselect", function(event){
//Get the checkbox id
var id = $(this).attr('id');
//event.preventDefault();
$(this).parent().removeClass("selected");
var total = $("#calulatedPointsHidden").val();
checkedValue = $("input[@id="+id+"]:checked").val(); //It's finding the first checked checkbox value and subtracting that
total -= checkedValue;
//Update the screen value
$("#calulatedpoint").text(total);
//Update the hidden value
$("#calulatedPointsHidden").val(total);
//Unchecks the checkbox
$(this).parent().find(":checkbox").removeAttr("checked");
});
私の引き算の問題を理解する助けをいただければ幸いです。追加セクションを改善するためのヒントも素晴らしいでしょう。ありがとう。