4

I have a page with a number of checkboxes. Each Checkbox is for a different item (virtual Rose) and rose has a different value. I have put the value of the rose into the value="" of the checkbox. I need to add up the total value of the ticked checkboxes - eg: 100, 230 etc. The only other factor is I need to only add up checkboxes with the class "giftsRosesCheckBox".

<table id="tableGiftsWhiteRose"><tr>
  <td colspan="2">White Rose</td></tr><tr>
  <td><input type="checkbox" class="giftsRosesCheckBox" value="100"/></td>
  <td class="credits">100 credits</td> 
</tr></table>

<table  id="tableGiftsRedRose"><tr>
  <td colspan="2">Red Rose</td></tr><tr>
  <td><input type="checkbox" class="giftsRosesCheckBox" value="130"/></td>
  <td class="credits">130 credits</td>      
</tr></table>

<table><tr>
  <td colspan="2">Stunning Red Rose</td></tr><tr>
  <td><input type="checkbox" class="giftsRosesCheckBox" value="150"/></td>
  <td class="credits">150 credits</td>      
</tr></table>

I'm really not sure how to do this so a push in the right direction would be great.

thanks so much.

3 Answers 3

4

You could loop over the checkboxes and add their values.

var total = 0;
$(':checkbox:checked.giftsRosesCheckBox').each(function() {
    total += +this.value;
});

jsFiddle.

If you didn't have to support older browsers (or shim reduce()), you could do it in a more functional way...

var total = $(':checkbox:checked.giftsRosesCheckBox')
            .get()
            .reduce(function(total, checkbox) {
                 return total + +checkbox.value;
             }, 0);

jsFiddle.

Sign up to request clarification or add additional context in comments.

Comments

3
$(".giftsRosesCheckBox").click(function() {
    var total = 0;
    $(".giftsRosesCheckBox:checked").each(function() {
        total += parseInt($(this).val(), 10);
    });
    alert(total);
});

Comments

0
var total =0;
$('input[type=checkbox].giftsRosesCheckBox, input[checked=checked].giftsRosesCheckBox').each(function(){
total += this.val();
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.