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!の 2 番目の引数 (基数) を忘れないでください。

于 2012-10-04T15:00:12.213 に答える
0

parseInt などを使用する必要がありますか?

丁度。連結され、合計されない文字列val()を返します。

使用するときは、基数の正しい基数parseInt(10 進数の場合は 10) の基数パラメーター (2 番目のパラメーター) を指定する必要があることに注意してください。

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

短い答え、はい。.val() 値は値の文字列解釈であるため、 parseInt() する必要があるため、単純に連結されます。

于 2012-10-04T15:00:40.310 に答える