非常基本的问题,但我有以下HTML:
<input type="text" id="nspcc" value="0" onkeyup="doTotal();" />
<input type="text" id="barnados" value="0" onkeyup="doTotal();" />
<input type="text" id="savethechildren" value="0" onkeyup="doTotal();" />
<input type="text" id="childresnsociety" value="0" onkeyup="doTotal();" />
<input type="text" id="childreninneed" value="0" onkeyup="doTotal();" />
<input type="text" id="total" disabled="disabled" />
以下jQuery:
function doTotal() {
var one,two,three,four,five,total;
one = $('#nspcc').val();
two = $('#barnados').val();
three = $('#savethechildren').val();
four = $('#childresnsociety').val();
five = $('#childreninneed').val();
total = one+two+three+four+five;
$('#total').val(total);
}
doTotal();
我可能正在做一些愚蠢但为什么total
连接而不是添加值?我需要使用parseInt
或其他什么吗?
答案 0 :(得分:6)
我需要使用parseInt吗?
是。 .val()
方法返回一个字符串,因此您需要确保对数字进行操作(因为+
运算符被重载以根据上下文执行加法和连接):
one = parseInt($('#nspcc').val(), 10);
//etc...
不要忘记parseInt
的第二个参数(基数)!
答案 1 :(得分:0)
我需要使用parseInt吗?
完全。 val()
将返回字符串,它将被连接而不会被添加。
请注意,使用parseInt
时,应为正确的基数提供基数参数(第二个) - 十进制为10,否则假设八进制。
one = parseInt( $('#nspcc').val() , 10);
答案 2 :(得分:0)
简短的回答,是的。你需要parseInt()你的.val()值,因为它们是值的字符串解释,所以它们只是连接。