jquery计算器bug?

时间:2012-10-23 23:12:51

标签: jquery jquery-plugins calculator

我正在使用jquery计算器插件,但我遇到了一个问题,并且想知道是否有解决方法。我有一个有超过8次迭代的表单来计算。一旦我到达#9,它会在没有错误显示的情况下中断。

$(function() {
      $('input[name^=sum]').keyup(function() {
            var sum1 = parseFloat($('input[name=sum1]').val()); // Or parseInt if integers only
            var sum2 = parseFloat($('input[name=sum2]').val());
            var sum3 = parseFloat($('input[name=sum3]').val());
            var sum4 = parseFloat($('input[name=sum4]').val());
            var sum5 = parseFloat($('input[name=sum5]').val());
            var sum6 = parseFloat($('input[name=sum6]').val());
            var sum7 = parseFloat($('input[name=sum7]').val());
            var sum8 = parseFloat($('input[name=sum8]').val());
            var sum9 = parseFloat($('input[name=sum9]').val());
            var sum10 = parseFloat($('input[name=sum10]').val());
            $('#totalSum').val(sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sum10);
      });
});
$(function() {
        $('input#totalSum').blur(function() {
            var amt = parseFloat(this.value);
            $(this).val('' + amt.toFixed(2));
        });
    });

1 个答案:

答案 0 :(得分:0)

这不是一个错误。确保将输入默认为0,否则parseFloat将尝试解析返回NaN(非数字)的空字符串。您可以通过为输入设置value="0"属性,或者执行以下操作来执行此操作:

var sum1 = parseFloat($('input[name=sum1]').val(), 10)  || 0;

这是一个展示这个概念的小提琴:http://jsfiddle.net/fqfyL/

另一方面,您可以通过迭代输入来大大简化逻辑,而不必为每个输入编写一行代码。这是展示这一概念的另一个小提琴:http://jsfiddle.net/fqfyL/1/

最后,我不确定你使用的是哪个“jQuery计算器插件”(其中只有大量的数据),但我在这两个小提琴中发布的代码都没有使用插件。这一切都只是简单的jQuery / JavaScript。如果您的“jQuery计算器插件”仍然存在问题,请发布指向作者网站的链接,以便我们知道哪一个可以帮助您。