在写一个网页,关于考核扣分。写了一个html,扣分项内容比较多,我是用table来划分的,表格前两项分别是扣分类别和扣分详情。扣分类别只是用来看的,不需要操作。扣分详情是用的复选框,点击某一项后会把复选框的value值返回到表格中该扣分类别的第三个单元格,并把所有扣分项的扣分之和返回到最后一行的总计里面。
因为每一个类别里面小项比较多,我把每一项的合计都初始化为0,然后写了几个相加的函数,将结果通过parseInt()转换成数字(否则结果显示在每一行的合计里面是字符串形式)。现在已经实现的功能是可以点击扣分项,并由.html()方法将和返回到每一扣分类别的合计单元格td里面,但是合计那一栏的值就从0变为了空白。我试了很多方法,最后把html最后的合计单元格里面写了一个input_text,再点击扣分项后,合计的单元格里面显示的就是NaN了...我也试着在相加的函数里把每一个结果都转换成了parseInt或者parseFloat,可是都不能实现,单元格里还是显示NaN...
求各位大神帮帮忙啊...
代码比较多,有1k多行,我先贴几个图片吧
js计算求和函数代码(还有很多,因为参数数量不同,但函数是差不多的):
// 五个变量相加
function add_five(a, b, c, d, e) {
var sum = parseInt(a)+parseInt(b)+parseInt(c)+parseInt(d) + parseInt(e);
parseInt(sum);
return sum;
}
将结果显示到单元格函数:
// 声明officeadd1变量
var publicval = 0;
var notidentify = 0;
var incomplete = 0;
var duty = 0;
// 计算汇总
var sumcountone = 0;
var sumcounttwo = 0;
var sumcountthree = 0;
var sumcountfour = 0;
var sumsumsum = 0;
sumcountone = add_twelve(office_add1,office_add2,document_add1,document_add2,document_add3,stamp_add1,stamp_add2,stamp_add3,meeting_add1,meeting_add2,govaffair_add1,govaffair_add2);
sumcounttwo = add_twelve(govaffair_add3,govaffair_add4,asset_add1,asset_add2,asset_add3,car_add1,car_add2,car_add3,car_add4,nonrevenue_add1,nonrevenue_add2,nonrevenue_add3);
sumcountthree = add_twelve(nonrevenue_add4,expense_add,budget_add,moneymanage_add,account_add1,account_add2,sevice_add,personmanage_add1,personmanage_add2,personmanage_add3,hire_add1,hire_add2);
sumcountfour = add_twelve(hire_add3,daily_add1,daily_add2,daily_add3,daily_add4,daily_add5,welfare_add1,welfare_add2,quality_add1,quality_add2,quality_add3,quality_add4);
parseInt(sumcountone);
parseInt(sumcounttwo);
parseInt(sumcountthree);
parseInt(sumcountfour);
// 计算officeadd1
$("#publicval").click(function() {
if($("#publicval").prop("checked")) {publicval = $("#publicval").val();}
else{publicval = 0;}
$("#office_add1").html(add_four(publicval,notidentify,incomplete,duty));
sumsumsum = add_four(sumcountone,sumcounttwo,sumcountthree,sumcountfour);
parseInt(sumsumsum);
$("#deduction_sum").val(sumsumsum);
})
$("#notidentify").click(function() {
if($("#notidentify").prop("checked")) {notidentify = $("#notidentify").val();}
else{notidentify = 0;}
$("#office_add1").html(add_four(publicval,notidentify,incomplete,duty));
sumsumsum = add_four(sumcountone,sumcounttwo,sumcountthree,sumcountfour);
parseInt(sumsumsum);
$("#deduction_sum").val(sumsumsum);
})
$("#incomplete").click(function() {
if($("#incomplete").prop("checked")) {incomplete = $("#incomplete").val();}
else{incomplete = 0;}
$("#office_add1").html(add_four(publicval,notidentify,incomplete,duty));
sumsumsum = add_four(sumcountone,sumcounttwo,sumcountthree,sumcountfour);
parseInt(sumsumsum);
$("#deduction_sum").val(sumsumsum);
})
$("#duty").click(function() {
if($("#duty").prop("checked")) {duty = $("#duty").val();}
else{duty = 0;}
$("#office_add1").html(add_four(publicval,notidentify,incomplete,duty));
sumsumsum = add_four(sumcountone,sumcounttwo,sumcountthree,sumcountfour);
parseInt(sumsumsum);
$("#deduction_sum").val(sumsumsum);
})
你
sumcountone
后面的add_twelve(office_add1,office_add2,document_add1,document_add2,document_add3,stamp_add1,stamp_add2,stamp_add3,meeting_add1,meeting_add2,govaffair_add1,govaffair_add2);
里面的内容在click里面没有,是''的,而不是0.你类似这样把里面的变量的值写成函数,每次
sumcountone
都调用一下。再把所有的
sumcountone
写成一个函数,在click每次调用一下