1.第一个问题可先由下图引出:
需求是要将表格中保单价格进行相加,是一个比较简单的需求,但是在开发的过程中遇到了以下的问题,作个笔记,以示警醒。
条件:合并开票的id为“combineButtons”,以下展示代码为保单价格相加的代码。
Invoice.SumTabsPrice = function (index) {
var container = $("#tabContent" + index);
var checkedRecords = $("input[name='invMergeCheck']:checked", container);
var combineSum = 0;
var sumStr = '';
if (checkedRecords.length) {
checkedRecords.each(function (i, item) {
combineSum += Number($(item).attr('pricetag'));
})
}
sumStr =$('#combineButton').text()+ '(' + combineSum + ')';//拿到拼接后的合并开票的内容
$('#combineButton').text(sumStr); //将合并开票和金额进行拼接
};
这是一开始写的一段代码是有问题的,原因是在每个tabs进行合并计算的时候,合并开票都会被拼接一次,这样一来就会出现“合并开票(xx)(xx)”的情况出现。修改后的代码
Invoice.SumTabsPrice = function (index) {
var container = $("#tabContent" + index);
var checkedRecords = $("input[name='invMergeCheck']:checked", container);
var combineSum = 0;
var sumStr = '';
if (checkedRecords.length) {
checkedRecords.each(function (i, item) {
combineSum += Number($(item).attr('pricetag'));
})
}
sumStr = '合并开票' + '(' + combineSum + ')';
$('#combineButton').text(sumStr); //将合并开票和金额进行拼接
};
修改后的代码里将合并开票写死,直接拼计算后的数值,就不会出现上述情况。