Jquery在多个表中求和表单输入


Jquery sum form inputs in multiple tables

我有一个PHP页面,从MySQL填充HTML表。它输出两个id为"headTable"answers"visitors"的独立表。我试图从"访问"表中求和值,并将求和输出到相应的"headTable"。还有一个复选框填充输入字段,我也有麻烦时,检查所有的复选框获得正确的总和。如果我手动输入值,总和是正确的。提前感谢。下面是一个关于小提琴的例子

<table id="headTable">
    <tr>
        <th>First Table</th>
        <th><span id="appliedTotal"></span></th>
    </tr>
</table>
<table id="visits">
    <tr>
        <td>Jane</td>
        <td>18.45</td>
        <td><input type="checkbox"></td>
        <td><input class="amount" type="text" size="20" value=""></td>
    </tr>
    <tr>
        <td>Peter</td>
        <td>100</td>
        <td><input type="checkbox"></td>
        <td><input class="amount" type="text" size="20" value=""></td>
    </tr>
</table>
<table id="headTable">
    <tr>
        <th>Second Table</th>
        <th><span id="appliedTotal"></span></th>
    </tr>
</table>
<table id="visits">
    <tr>
        <td>Ronald</td>
        <td>100</td>
        <td><input type="checkbox"></td>
        <td><input class="amount" type="text" size="20" value=""></td>
    </tr>
    <tr>
        <td>John</td>
        <td>100</td>
        <td><input type="checkbox"></td>
        <td><input class="amount" type="text" size="20" value=""></td>
    </tr>
</table>

和Jquery

<script>
$(document).ready(function(){
    $(function() {
        $('table input[type="checkbox"]').change(function() {
            var input = $(this).closest('td').next('td').find('input');
            if ($(this).is(':checked')) {
                var amount = $(this).closest('td').prev('td').text();
                var sum = 0;
                $.each($('table#visits'), function() {
                    $('.amount').each(function() {
                        sum += Number($(this).val());
                        $('#appliedTotal').html('$'+sum.toFixed(2));
                    });
                });
                input.val(amount);
            } else {
                input.val('0.00');
                var sum = 0;
                $('.amount').each(function() {
                    sum += Number($(this).val());
                    $('#appliedTotal').html('$'+sum.toFixed(2));
                });
            }
        });
    });
    $.each($('table#visits'), function() {
        $(".amount").keyup(function() {
            var sum = 0;
            $('.amount').each(function() {
                sum += Number($(this).val());
                $('#appliedTotal').html(sum);
            });
        });
    });
});
</script>

这就是我想要做的。

JSFiddle示例

是关于如何把美元变成数字吗?我更喜欢相反的,但对于您的情况,添加子字符串(1)到。val(),然后将其传递给Number()

和一个Sum = '$' + Sum然后赋值给appliedTotal

你不能在一个页面上有两个表或任何其他具有相同'id'的标签。