0

これが初心者の質問である場合は申し訳ありませんが、まあ、私は初心者です。複数のテキスト フィールドの値の合計を別のテキスト フィールドに取得したいと考えています。私のコードは次のようになります。

$('.button').mouseup(function()  {
    var sum = $("#field1").val()+$("#field2").val();
    $("#result").val(sum);
});

ボタンをクリックすると、3 + 3 の合計は 6 ではなく 33 になります。すべての数値がテキストフィールドに追加されるだけです。「+」を「*」に変更すると、3*3 は 9 になります。ありがとうございました。

4

6 に答える 6

2

.val()文字列を取得し、文字列を追加するとそれらが連結されます。

最初に値に対して使用parseInt(str,10)して、それらを基数 10 の整数に変換します。

var sum = parseInt($("#field1").val(),10)+parseInt($("#field2").val(),10);

整数以外の値を扱っている場合は、parseFloat()代わりに使用してください。

于 2013-03-04T16:57:33.517 に答える
2

問題は、JavaScript が+演算子を加算ではなく文字列連結操作として解釈することです。これは、 の左側と右側の両方+が文字列値であるためです。int追加するには、それらを値に強制する必要があります

var left = parseInt($("#field1").val());
var right = parseInt($("#field2").val());
var sum = left + right;
于 2013-03-04T16:57:39.553 に答える
1

.val()数値ではなく文字列を返します。包み込む必要がありますparseInt(...val(), 10);

于 2013-03-04T16:57:50.740 に答える
0

使用している値 (つまり$("#field1").val()) は、特に変換しない限り文字列です。

この+演算子は、文字列に適用すると連結演算子になります。

追加する前に関数を使用Number()して数値に変換します。

var sum = Number($("#field1").val())+Number($("#field2").val());

演算子の場合、文字列の演算子が自動的に変換するように設定されているため ( 2 つの文字列には論理的な意味がないため)、または文字列が数値として認識されているため、*これが自動的に数値に変換されていると思われます。オペレーターを適用できるようにします。***

于 2013-03-04T16:57:32.977 に答える
0

演算子を文字列で使用すると、演算子+のように文字列を数値に強制しようとするのではなく、文字列を連結します*parseInt()文字列の代わりに整数を取得するために使用できます。

$('.button').mouseup(function()  {
    var sum = parseInt($("#field1").val()) + parseInt($("#field2").val());
    $("#result").val(sum);
});
于 2013-03-04T16:58:39.337 に答える
0

parseInt()呼び出しを使用して、数値のプル値を処理 してみてください。

parseInt($('#field1').val())例えば。

于 2013-03-04T16:59:20.970 に答える