点击复选框使复选框的value值相加,并将和返回到结尾的单元格中,结果显示NaN?

在写一个网页,关于考核扣分。写了一个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);
})
阅读 3.2k
1 个回答

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.

function ABC() {
            a = add_five(baglist, entrust, undone, approval, skill);
            b = add_two(passwordleak, disscuss);
            c = add_two(changes, close);
            d = add_three(chance, influence, influencebad);
            e = add_four(initial, workable, noture, bad);
            f = add_three(carryout, question, alter);
            g = add_two(urge, collect);
            h = add_two(part, provide);
            i = random;
}

你类似这样把里面的变量的值写成函数,每次sumcountone都调用一下。
再把所有的sumcountone写成一个函数,在click每次调用一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题