修改:解决方案:http://jsfiddle.net/VnXtP/
为什么这不起作用? http://jsfiddle.net/uc7kT/
<input type="text" name="item_quantity" id="item_quantity" value="1" />
<input type="text" name="item_price" id="item_price" value="24998" hidden="hidden" />
$('#item_quantity').change(function() {
var quantity = $('#item_quantity').val();
var price = $('#item_price').val();
var total = quantity * price;
alert(total.length);
});
答案 0 :(得分:1)
长度是为字符串定义的,而不是数字。如果您希望将此操作作为数学运算,则必须首先将输入字符串转换为数字。如果你真的想要数字字符串的长度(我不知道你为什么会这样),你需要先将数字转换为字符串:
$('#item_quantity').change(function() {
var quantity = parseInt($('#item_quantity').val(), 10);
var price = parseFloat($('#item_price').val());
var total = quantity * price;
alert(total.toString().length);
});
答案 1 :(得分:0)
使用:
alert(total);
而不是:
alert(total.length);
您可能还需要考虑在执行数学运算之前将输入值转换为float或整数值。
答案 2 :(得分:0)
var quantity = $('#item_quantity').val();
var price = $('#item_price').val();
item_quantity
和item_price
是文本输入,您需要在乘法之前将其更改为Integer。使用parseInt()来做到这一点。
var quantity = parseInt($('#item_quantity').val(),10);
var price = parseInt($('#item_price').val(),10);
并使用alert(total);
而不是alert(total.length);
答案 3 :(得分:0)
总数是一个数字。它没有“长度”属性。
尝试
alert(total);
我想这就是你想要的。
答案 4 :(得分:0)
在javascript中,数字是数字,字符串是字符串。
有时令人困惑的是,数字可以在需要时自动变为字符串(例如向其中添加字符串)。
数字没有length
属性,而是字符串。同样在javascript中,当您向对象询问通常不存在的属性时,您只需获得undefined
值。