0

我目前正在用 jQuery 构建我的第一个计算器,但输入中的值的总和存在一些问题。我不会使用多个输入,因为我想让它简单易用。下面的代码打印出来NaN,我不明白为什么。

$('body').on('click', '#method-getsum', function() {
    var sum = 0;
    var string = $('input[name="fieldtext-calculate"]').val();

    if(string.length != 0) {
        sum += Number(string);
    }

    alert(sum);
});

我错过了什么吗?你可以在这里看到这一切:http: //jsfiddle.net/edgren/QTjWR/(这个演示包含正确的eval函数解决方案(我的计算器不是真正的项目。只是“玩”项目))

提前致谢。

4

2 回答 2

1

当您输入类似1+2的内容时,您的代码将调用Number("1+2"). 这是不正确的,因为Number()期望单个数字(而不是加法)作为其参数。它不会为您执行操作解析和解释,您必须自己编写代码。

如果它只是一个玩具项目,请使用eval而不是Number(避免eval在实际项目中,它会产生安全问题)。

于 2013-01-23T19:05:57.020 回答
0

可能是您使用关键字作为变量名。尝试将您的代码更改为:

var fieldText = $('input[name="fieldtext-calculate"]').val();

if(fieldText.length != 0) {
    sum += Number(fieldText );
}

编辑 没关系,返回的值是$('input[name="fieldtext-calculate"]').val();字符串'7 + 8 + 9'。尝试通过拆分+符号来获得不同的值,以将数字放入数组中,然后循环遍历数组。

于 2013-01-23T19:04:57.693 回答