cpoDesign
cpoDesign

Reputation: 9143

Read value of row using jquery

I need to create sum of the values selected, but i have small problem with the jquery bit.

My html table

<TR>
<TD>
<INPUT disabled onchange=updateDetails() value=33441 CHECKED type=checkbox name=invoiceRow dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD>
<TD>Professional fees for  Searches</TD>
<TD>285.00</TD></TR>
<TR>
<TD><INPUT onchange=updateDetails() value=36486 CHECKED type=checkbox name=invoiceRow dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD>
<TD>Professional fees</TD>
<TD>3213.03</TD></TR>

my javascript is:

where #InvoiceItemsRows is <tbody> tag

function updateDetails() {
      $("#InvoiceItemsRows input[type=checkbox][checked]").parent().last().each(
          function(index, value) {
            alert(value.html());
          }
     );
}

Upvotes: 0

Views: 639

Answers (5)

Gordnfreeman
Gordnfreeman

Reputation: 21

Javascript, maybe not as fancy as some of the other ones people have posted but it makes sense.

$(document).ready(function() { 
    $('[name=invoiceRow]').click(function() {
        updateDetails();
    });
    function updateDetails() {
    var total = 0;
    var currentnum = 0;
        $("input:checked").each(
            function(index, value) {
                currentnum = $(this).val();
                currentnum = Number(currentnum);
                total = total + currentnum;
            });
        alert(total);
    }
});

HTML

<TR>
<TD>
<INPUT disabled value="33441" CHECKED type="checkbox" name="invoiceRow" dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD>
<TD>Professional fees for  Searches</TD>
<TD>285.00</TD></TR>
<TR>
<TD><INPUT value="36486" CHECKED type="checkbox" name="invoiceRow"    dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD>
<TD>Professional fees</TD>
<TD>3213.03</TD></TR>

I fixed some of the missing quotes you may want to finish fixing them though.

Upvotes: 2

manji
manji

Reputation: 47968

Try this (you have to close <Input> tags):

function updateDetails() {
    var sum = 0;
    $("#InvoiceItemsRows input[type=checkbox]:checked").each(
        function() {
          sum += parseFloat($(this).closest('tr').children('td:eq(2)').text());
        }
     );
    return sum;
}

alert(updateDetails());

Upvotes: 1

mcgrailm
mcgrailm

Reputation: 17640

you have invalid html your your values need quotes

<tr>
    <td>
        <input disabled="disabled" onchange="updateDetails()" value="33441" checked="checked" type="checkbox" name="invoiceRow" dpieagent_iecontroltype="5"> <input type="hidden" name="isProfFee">
    </td>
    <td>
        Professional fees for Searches
    </td>
    <td>
        285.00
    </td>
</tr>
<tr>
    <td>
        <input onchange="updateDetails()" value="36486" checked="checked" type="checkbox" name="invoiceRow" dpieagent_iecontroltype="5"> <input type="hidden" name="isProfFee">
    </td>
    <td>
        Professional fees
    </td>
    <td>
        3213.03
    </td>
</tr>

and then

$("#InvoiceItemsRows input:checked")

Upvotes: 0

Gary Green
Gary Green

Reputation: 22395

Try this:

var total = 0;

$('#InvoiceItemsRows input:checked').each(function() {
    total += $(this).val();
});

I suspect you want to total what's in the <td> though?

Upvotes: 0

Kevin
Kevin

Reputation: 5694

You'll have to change:

$("#InvoiceItemsRows input[type=checkbox][checked]")

To:

$("#InvoiceItemsRows input:checked")

That new rule will return all 'checked' elements. Have a look at the documentation of the :checked selector.

Upvotes: 1

Related Questions