开发者

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&开发者_运维问答gt;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());
          }
     );
}


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.


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());


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.


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?


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")
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜