我正在检查特定复选框的总计。代码工作正常。如果没有选中任何复选框,我如何查看所有项目值的格式。这意味着如果我不选择任何复选框,它应该总计完整的字段值并显示在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 />
答案 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);
}
如果未选中任何复选框,则添加所有值,否则返回。