Jquery计算返回NaN,而它应该返回int
Jquery calculation returns NaN when it should return an int
嗨,我正在进行计算,其中我将所有文本输入的值相加,并获得我设置为另一个文本输入的值的总数。我认为这段代码应该可以工作,但它返回NaN。我做错了什么?
var sum = 0;
$('.price').each(function() {
amt = parseFloat($(this).val());
sum += Number(amt);
});
console.log(sum);
$("#order-total").val("€" + sum);
如果值不是数字则使用0,并删除任何可能导致错误的内容
var sum = 0;
$('.price').each(function() {
amt = parseFloat($(this).val().replace(/[^0-9,.]/g, '').replace(',','.')) || 0;
sum += amt;
});
$("#order-total").val("€" + sum);
你在value字段中写了€我猜这是在制造问题
<td><input type="text" class="price" value="€0"></td>
用这个代替上面的代码
<td><input type="text" class="price" value="0"></td>
放置下面的代码来放置验证
sum += isNaN(amt) ? 0 : amt;
在将其转换为float之前删除€符号,并检查结果是否为数字,然后再进行求和:
var sum = 0;
$('.price').each(function() {
// val() will return something like "€45.6";
amt = parseFloat($(this).val().substring(1)));
sum += isNaN(amt) ? 0 : amt;
});
console.log(sum);
$("#order-total").val("€" + sum);
您只需要检查第一个字符,看看它是否是欧元符号,如果是,删除它。
您需要查找字符而不是实体:
$('.price').each(function() {
var value = $(this).val();
if (value.charAt(0) === ''u20AC')
value = value.substr(1);
sum += parseFloat(value);
});
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- Safari ipad返回int作为parseFloat的结果
- Javascript-将字符串转换为Int会返回NaN错误
- string.prototype.search('$') 在每个字符串上返回正 int
- 将HTML元素转换为返回NaN Javascript的Int
- String.charAt() 在给定一个无法解析为 int 的字符串的情况下返回什么
- PHP + JS getElementById().值返回int而不是float
- 给定 2 个正 int 值,返回 10.20 范围内(含 10.20)的较大值,如果两者都不在该范围内,则返回 0
- 使用正则表达式get返回前两个int型
- 如何让Match返回INT而不是数组
- Jquery计算返回NaN,而它应该返回int
- Javascript函数返回undefined而不是int
- 为什么返回是未定义的,而console.log返回int ?