0

我正在尝试创建一个不会计算空白单元格的自动求和工具。目前它只是计数 1,但稍后会计数更多。这只是为任何数字条目返回 NaN。

var _num1 = document.getElementById('num1');
var _sum  = document.getElementById('sum');

_num1.onblur = function summation(){
    _sum.value = 0;
    _sum.value = (parseInt(_sum.value,10) + (isNaN(_num1) ? 0 : _num1.value));
};

HTML

Num 1: <input type="text" id="num1" name="num1" value=""><br/>
Sum:  <input type="text" id="sum"  name="sum" value="">
4

3 回答 3

0

@ComFreek 已经评论了你的错误。为了使您的脚本正常工作,您应该使用一个数字变量来表示总和

  • 在外部范围内(不在事件处理程序中)
  • 每次添加内容时都会更新
  • 然后输出到您的输入元素
var numEl = document.getElementById('num1');
var sumEl  = document.getElementById('sum');
var sum = 0; // declare

_num1.onblur = function summation(){
    var num = parseInt(numEl.value,10); // parse
    if (!isNaN(num)) { // validate
        sum += num; // update
        sumEl.value = sum; // output
    }
};
于 2013-08-07T16:07:05.270 回答
0

请试试这个:

var _num1 = document.getElementById('num1');
var _sum  = document.getElementById('sum');

_num1.onblur = function summation(){
    _sum.value = 0;

    var num1 = parseInt(_num1.value, 10);
    _sum.value = isNaN(num1) ? '0' : num1;
};
于 2013-08-07T15:51:59.040 回答
0

试试这个:

var num1Val = parseInt(_num1.value, 10);

_sum.value = (parseInt(_sum.value,10) + (isNaN(_num1Val) ? 0 : num1Val ));
于 2013-08-07T15:54:30.180 回答