0

我正在使用 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));
        });
    });
4

1 回答 1

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 计算器插件”仍有问题,请发布指向作者网站的链接,以便我们知道哪个可以帮助您。

于 2012-10-24T00:10:58.927 回答