我正在使用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));
});
});
答案 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计算器插件”仍然存在问题,请发布指向作者网站的链接,以便我们知道哪一个可以帮助您。