すべての書籍について、すべてのチェックボックスをオンまたはオフにする必要があります。また、合計価格と重量を追加する必要があります。これまでは各ボックスのチェックしかできず、値を追加していましたが、すべてのボックスをチェックする機能を追加するとすべてが機能しなくなりました。すべてのチェックボックスをオン/オフにして値を追加します
//check all function (commented it because it does not work)
//$("#checkAll").change(function() {
//$("input:checkbox").prop('checked', $(this).prop("checked"));
//});
// add weight and price
var inputs = document.getElementsByClassName('sum'),
totalElement = document.getElementById('payment-total'),
weightElement = document.getElementById('payment-weight'),
totalPrice = 0,
totalWeight = 0;
for (var i = 0; i < inputs.length; i++) {
inputs[i].onchange = function() {
if (this.checked) {
totalPrice += parseFloat(this.value);
totalWeight += parseFloat(this.getAttribute('Bweight'));
} else {
totalPrice -= parseFloat(this.value);
totalWeight -= parseFloat(this.getAttribute('Bweight'));
}
totalElement.innerHTML = totalPrice.toFixed(2);
weightElement.innerHTML = totalWeight.toFixed(2);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><label><input type="checkbox" id="checkAll"/> Check all Set A</label></p>
<fieldset>
<legend>Set A Books</legend>
<input value="300" type="checkbox" bweight=".500" id="ENG101" class="sum" data-toggle="checkbox"> English
<input value="500" type="checkbox" bweight=".330" id="SCI101" class="sum" data-toggle="checkbox"> Science
<input value="755" type="checkbox" bweight=".633" id="CLE101" class="sum" data-toggle="checkbox"> Christian Living
</fieldset>
<p><label><input type="checkbox" id="checkAll"/> Check all Set B</label></p>
<fieldset>
<legend>Set B Books</legend>
<input value="245" type="checkbox" bweight=".845" id="ENG202" class="sum" data-toggle="checkbox"> English
<input value="534" type="checkbox" bweight=".734" id="SCI202" class="sum" data-toggle="checkbox"> Science
<input value="623" type="checkbox" bweight=".257" id="CLE202" class="sum" data-toggle="checkbox"> Christian Living
<input value="954" type="checkbox" bweight=".845" id="MAT101" class="sum" data-toggle="checkbox"> Math
</fieldset>
<p></p>
<div class="card-charge-info">
Weight <span id="payment-weight">0</span>
</div>
<div class="card-charge-info">
Price <span id="payment-total">0</span>
</div>
私はそれがチェックがすべてが選択されている場合、個々のボックスがチェックされている場合は、それもかかわらず、総価格と重量を追加する必要があることをように動作する必要があります。私は今、この間何もしていないので、あなたの助けに本当に感謝しています。ありがとうございました!
同じIDが無効です。 IDは要素ごとに一意でなければならず、代わりにクラスに変更してください。 – Jai
お試しくださいhttps://jsfiddle.net/yfuff4ht/4/ –
https://jsfiddle.net/yfuff4ht/7/ –