使用文本输入字段时出现的JN中的NaN
我正在尝试使用一个简单的javascript函数,该函数旨在与单个数字的SELECT下拉列表一起使用,但现在我需要在访问者输入带小数点的值时使用它。 即使我输入30或任何数字,我使用当前的javascript获得NaN。 关于如何获得我的总数的任何建议?
JAVASCRIPT:
$(function () { $('.DoPricing').change(function () { var total = 0; $('.DoPricing').each(function () { total += parseInt($(this).val()); }); $('#TotalPrice').html('$' + total); }); });
HTML:
试试这个:
$(function () { $('.DoPricing').on("keyup",function () { var total = 0; $('.DoPricing').each(function () { total += parseFloat($(this).val()) || 0; }); $('#TotalPrice').html('$' + total); }); });
现在接受小数,这是演示
你的基本例子对我有用。 我猜测页面上有其他元素与类,但不一定有值 ,并且你希望它们默认为零。 当输入没有值时, .val()
返回空字符串,而parseInt('', 10)
返回NaN
,而不是0
,所以你没有得到你想要的。
这很容易修复:
total += parseInt($(this).val()) || 0;
演示: http : //jsfiddle.net/mattball/2rgku
我假设你也想要小数,但你使用的是parseInt而不是parseFloat,如果你使用小数(因为它是钱),那么你应该使用toFixed。 在下面的代码中,我假设用户将使用。 作为小数符号,应该只有一个。 在值(没有千位分隔符)。
在你的每个你转换一个完美的好用这个jQuery对象只是为了获得值。 我已将$(this).val()更改为this.value,因此不需要转换。
test