为什么这个jQuery给我一个“NaN”?

时间:2015-07-24 18:55:12

标签: jquery floating-point

我可以发誓这段代码工作得比较早,但是现在它没有,也没有改变,所以:

我有1个5个盒子,里面有货币值(例如10.00或空白)。计算总数,然后将其显示在“总计”框中,如下所示:

$(document).on("blur", '.amountbox', function (e) {
    var amount1 = $('[id$=boxAmount1]').val() != '' ? parseFloat($('[id$=boxAmount1]').val()) : 0;
    var amount2 = $('[id$=boxAmount2]').val() != '' ? parseFloat($('[id$=boxAmount2]').val()) : 0;
    var amount3 = $('[id$=boxAmount3]').val() != '' ? parseFloat($('[id$=boxAmount3]').val()) : 0;
    var amount4 = $('[id$=boxAmount4]').val() != '' ? parseFloat($('[id$=boxAmount4]').val()) : 0;
    var amount5 = $('[id$=boxAmount5]').val() != '' ? parseFloat($('[id$=boxAmount5]').val()) : 0;
    var grandtotal = amount1 + amount2 + amount3 + amount4 + amount5;
    $('[id$=boxGrandTotal]').val(parseFloat(grandtotal).toFixed(2));
});

如果我在第一个框中输入“50”,并且模糊(退出),它将变为“50.00”(应该如此)。但是“boxGrandTotal”显示“NaN”为什么?

注意:五个“boxAmount”输入文本分配/附加了CSS类“amountbox”。

更新

事实证明,box3的ID附加了一些东西,而且它没有被浮起,因此导致整个混乱。我通过警告每一个值找到了,并且看到box3是NaN。

1 个答案:

答案 0 :(得分:1)

    $('[id$=boxGrandTotal]').val(parseFloat(grandtotal+'').toFixed(2));

试试这个。

还要确保检查空字符串''的字段不为空