计算多个复选框值

时间:2015-12-15 17:20:57

标签: javascript jquery checkbox

我需要帮助来计算独立表中的每个复选框值。

第一个示例表:

<table id="847391201">
    <tr>
        <td><input type="checkbox" name="option1" value="49.90" onClick="calculate(this, 847391201);"></td>
        <td style="text-align: left;">Option 1</td>
        <td style="text-align: right;">49.90 $</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="option2" value="39.90" onClick="calculate(this, 847391201);"></td>
        <td style="text-align: left;">Option 2</td>
        <td style="text-align: right;">39.90 $</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="option3" value="29.90" onClick="calculate(this, 847391201);"></td>
        <td style="text-align: left;">Option 3</td>
        <td style="text-align: right;">29.90 $</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="option4" value="19.90" onClick="calculate(this, 847391201);"></td>
        <td style="text-align: left;">Option 4</td>
        <td style="text-align: right;">19.90 $</td>
    </tr>
    <tr>
        <td colspan="3" style="text-align: right;">Total: <span id="total_847391201">0.00 $</span></td>
    </tr>
    <tr>
        <td colspan="3" style="text-align: center;"><a href="#" class="button orange">Make Payment</a></td>
    </tr>
</table>

第二个示例表:

<table id="847391202">
    <tr>
        <td><input type="checkbox" name="option1" value="49.90" onClick="calculate(this, 847391202);"></td>
        <td style="text-align: left;">Option 1</td>
        <td style="text-align: right;">49.90 $</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="option2" value="39.90" onClick="calculate(this, 847391202);"></td>
        <td style="text-align: left;">Option 2</td>
        <td style="text-align: right;">39.90 $</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="option3" value="29.90" onClick="calculate(this, 847391202);"></td>
        <td style="text-align: left;">Option 3</td>
        <td style="text-align: right;">29.90 $</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="option4" value="19.90" onClick="calculate(this, 847391202);"></td>
        <td style="text-align: left;">Option 4</td>
        <td style="text-align: right;">19.90 $</td>
    </tr>
    <tr>
        <td colspan="3" style="text-align: right;">Total: <span id="total_847391202">0.00 $</span></td>
    </tr>
    <tr>
        <td colspan="3" style="text-align: center;"><a href="#" class="button orange">Make Payment</a></td>
    </tr>
</table>

使用Javascript:

<script type="text/javascript">
<!--
var total = parseFloat(0.00);
function calculate(item, id) {
    if (item.checked) {
        total += parseFloat(item.value);
    } else {
        total -= parseFloat(item.value);
    }
    $('span[id="total_' + id + '"]').text(total.toFixed(2) + ' $');
}
//-->

这段代码工作得很好但是当我点击第一张桌子上的某个选项时,我点击了第二张桌子上的另一个选项,它继续计算。我想让每个表选项都独立。我将表格,复选框和总跨度与ID分开,但我无法做到这一点,因为我想工作。

非常感谢你。

2 个答案:

答案 0 :(得分:0)

您将总值存储在一个全局变量中。您可以改为使用数组:

var total = new Array();
function calculate(item, id) {
    if (total[id] == undefined)
        total[id] = parseFloat(0.00);
    if (item.checked)
        total[id] += parseFloat(item.value);
    else
        total[id] -= parseFloat(item.value);
    $('span[id="total_' + id + '"]').text(total[id].toFixed(2) + ' $');
}

答案 1 :(得分:0)

您需要有两个变量才能跟踪两个总计吗?

var totalTableA = parseFloat(0.00);

var totalTableB = parseFloat(0.00);

然后根据Id添加相关总数:

function calculate(item, id) {
if (item.checked) {
    if(id = 847391202) 
    {
         totalTableA += parseFloat(item.value);
    } else {
         totalTableB += parseFloat(item.value);
    }
} else {
    if(id = 847391202) 
    {
         totalTableA -= parseFloat(item.value);
    } else {
         totalTableB -= parseFloat(item.value);
    }
}
$('span[id="total_' + id + '"]').text(totalTableA.toFixed(2) + ' $');
$('span[id="total_' + id + '"]').text(totalTableB.toFixed(2) + ' $');

}