这是我的代码:
$("table.order-list").find('input[name^="total"]').each(function () {
grandTotal += +$(this).val();
valNum.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
});
如何在此代码中插入循环:valNum.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
。
我想循环或调用所有input[name^="percentage"]
来重新计算公式。
如果您希望查看代码流,请点击以下链接:http://jsfiddle.net/Ellyse/47x2N/4/
以下是它的工作原理:输入数量值并尝试通过点击复选框在第一行中插入值,它会自动计算总时间','百分比&#列39;,'时间估计'。对于第二行插入值相同,请注意第一行的百分比会发生变化,但是当您将所有百分比加起来时,它不是确切的结果,应该是100%。这就是为什么我要问如何在此代码中插入.each函数:valNum.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
这样就会重新计算公式。
答案 0 :(得分:0)
修改强>
看了你的代码和正确的分析。我认为这是你一直在寻找的很长时间(至少3天):)。
在代码中替换整个js。我已经改变了很多代码。请在此处查看有效的演示:http://jsfiddle.net/khurram_khu/KYzQR/
$(document).ready(function () {
$('td input[type="checkbox"]').click(function () {
$(this).closest('tr').find('input[type="text"]').prop('disabled', !this.checked);
}).change();
$('input[name^="txt1"], input[name^="txt2"], #qty').on("keyup", function () {
calculate();
});
});
function calculate() {
var grandTotal = 0;
$('table.order-list tr input[name^="txt1"]:enabled').closest('tr').each(function () {
var row = $(this);
var qty = +$('#qty').val();
var teo = +row.find('input[name^="txt1"]').val();
var tep = +row.find('input[name^="txt2"]').val();
var totalTime = (teo + (qty * tep)).toFixed(2);
grandTotal += +totalTime;
row.find('input[name^="total"]').val(totalTime);
});
var totalAll = $("#grandtotal").val(grandTotal.toFixed(2));
$('#time').val((grandTotal / 60).toFixed(2));
$('table.order-list tr input[name^="txt1"]:enabled').closest('tr').each(function () {
var row = $(this);
var totalTime = row.find('input[name^="total"]').val();
row.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
});
}
我希望这就是你所需要的。如果这对您有帮助,请将此标记为答案。