Javascript总结

时间:2013-08-07 15:47:52

标签: javascript

我正在尝试创建一个不会计算空白单元格的自动清除工具。目前它只是计算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="">

3 个答案:

答案 0 :(得分: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;
};

答案 1 :(得分:0)

请改为尝试:

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

_sum.value = (parseInt(_sum.value,10) + (isNaN(_num1Val) ? 0 : num1Val ));

答案 2 :(得分: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
    }
};