Jquery总计来自复选框或没有复选框

时间:2015-11-19 08:55:56

标签: jquery

我正在检查特定复选框的总计。代码工作正常。如果没有选中任何复选框,我如何查看所有项目值的格式。这意味着如果我不选择任何复选框,它应该总计完整的字段值并显示在grandtotal中。文本框中的这些值不是硬编码的,它是在从另一个javascript函数计算后生成的。

 $(function () {
 $("input[type='checkbox'").on("change", function () {
   recalcTotal();
 }).change();

function recalcTotal() {
var total12 = 0;
var checkedinput = $("input:checked");
var targetcheckboxes = checkedinput.length ? checkedinput : $("input:checkbox");
targetcheckboxes.each(function () {
    total12 += parseFloat($(this).next("input").val(),10) * 1;
});

$("#total12").val(total12.toFixed(3));

}
});
<input type="checkbox" name="values"/><input type="text" readonly value="100"/> <br />
<input type="checkbox" name="values" /><input type="text" readonly value="200"/> <br />
<input type="checkbox" name="values" /><input type="text" readonly value="300"/> <br />
<input type="checkbox" name="values" /><input type="text" readonly value="400"/> <br />
<input type="checkbox" name="values" /><input type="text" readonly value="500"/> <br />
<input type="checkbox" name="values" /><input type="text" readonly value="600"/> <br /><br />
<b>Grand Total:</b> <input type="text" id="total" readonly/> <br />

FIDDLE

1 个答案:

答案 0 :(得分:1)

使用

function marginTotal(){

    var x = $('[name="gt[]"]:checked').length;
    if(x!=0) return;
    var sum = 0;
    $('input[name="margin_for[]"]').each(function(){
        sum += +this.value;
    });
    $("#total12").val(sum);
}

如果未选中任何复选框,则添加所有值,否则返回。

Fiddle