1

非常基本的问题,但我有以下 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什么的吗?

4

3 回答 3

6

我需要使用 parseInt 什么的吗?

是的。该.val()方法返回一个字符串,因此您需要确保您正在对数字进行操作(因为+运算符被重载以根据上下文执行加法和连接):

one = parseInt($('#nspcc').val(), 10);
//etc...

不要忘记 ! 的第二个参数(基数parseInt

于 2012-10-04T15:00:12.213 回答
0

我需要使用 parseInt 什么的吗?

确切地。val()将返回strings,它们将被连接起来而不是相加。

请注意,使用时parseInt您应该为正确的基数提供基数参数(第二个) - 十进制为 10,否则它将假定为八进制。

one = parseInt( $('#nspcc').val() , 10);
于 2012-10-04T15:00:29.223 回答
0

简短的回答,是的。您需要 parseInt() 您的 .val() 值,因为它们是值的字符串解释,因此它们将简单地连接。

于 2012-10-04T15:00:40.310 回答