2

ここで何をすべきかわかりません助けてください...

私はこのhtmlコードを持っています

<div id="project_math">
<form method="post">
 Quantity : <input type="text" name="quatity" value="1" />
 Amount : <input type="text" name="amounty" value="20" />
 <span id="total">20</span>
</form>
</div>

jQuery

$(document).ready(function(){

    /* COMPUTATION */
    $('input[name=quantity_e]').keyup(function(){

        var sum = $('input[name=amt_e]').val();

        sum *= $('input[name=quantity_e]').val();
        $("#total").text($(this).val());

    });
});

私がやろうとしているのは、ikeyupと 2 または 10 のような入力値の場合、その値を金額の値に掛けることです。したがって、i keyup2 の場合、金額の値が 20 の場合、合計は 40 になるはずです。

私のjQueryは間違っていますか?

4

8 に答える 8

6

val文字列を返します。したがって、それを数値に変換する必要があります。使用できますparseInt

var sum = parseInt($('input[name=amt_e]').val(), 10);
sum *= parseInt($('input[name=quantity_e]').val(), 10);
$("#total").text(sum);

JavaScript で使用する名前は、html では同じではありません。しかし、それはあなたの例にすぎないかもしれません。

于 2012-12-06T13:23:54.260 に答える
2

セレクターが間違っていてval、文字列を返します。最初に文字列を数値に変換する必要があります。

$('input[name=quatity]').keyup(function(){
    var sum = parseInt(this.value, 10)
    sum *= parseInt($('input[name=amounty]').val(), 10);
    $("#total").text(sum);
});
于 2012-12-06T13:27:30.590 に答える
2

そのために試してくださいparseInt

    var sum = parseInt($('input[name=amt_e]').val());
    sum *= parseInt($('input[name=quantity_e]').val());

もちろん、値が整数でない場合は失敗します。

于 2012-12-06T13:24:35.447 に答える
1

val()は文字列を返すため、デフォルトは8であるため、10基数のparseIntを使用してint値に変換します。

var total= parseInt($('input[name=amt_e]').val(), 10);
total*= parseInt($('input[name=quantity_e]').val(), 10);
$("#total").text(total);
于 2012-12-06T13:32:15.040 に答える
1

これを使って:

/* COMPUTATION */
$('input[name=quatity]').keyup(function(){

    var sum = parseInt($('input[name=amounty]').val());

    sum += parseInt($('input[name=quatity]').val());
    $("#total").text(sum);

});​

フィドルでこれを試してください:

http://jsfiddle.net/XwjKN/

于 2012-12-06T13:29:06.797 に答える
0

テキストボックスが空の場合、上記のソリューションは NaN を返します。これを試してみてください。0になります。

変数 v1=0; 変数 v2=0;

if(!isNaN(parseInt($('input[name=amounty]').val()))){ v1 = parseInt($('input[name=amounty]').val()); }
if(!isNaN(parseInt($('input[name=quatity]').val()))){ v2 = parseInt($('input[name=quatity]').val()); }


sum = v1 * v2;
于 2012-12-06T13:41:10.803 に答える
0

INPUT フィールド名の多くの修正:

  1. Quantity は、希望する実際の入力フィールド名ですが、HTML と Jquery の両方で正しく使用されていません。

  2. 合計値を表示するスパンは、計算中の SUM では更新されず、代わりに常に数量値で更新されます。

修正された HTML を見つけます。

<div id="project_math">
<form method="post">
 Quantity : <input type="text" name="quantity" value="1" />
 Amount : <input type="text" name="amounty" value="20" />
 <span id="total">20</span>
</form>
</div>​

jQuery:

$(document).ready(function(){

    /* COMPUTATION */
    $('input[name=quantity]').keyup(function(){

        console.log('fired');
        var sum = $('input[name=amounty]').val();

        sum *= $('input[name=quantity]').val();
        $("#total").text(sum );

    });
});​
于 2012-12-06T13:47:26.760 に答える
0

次のことを試すことができます。

var item1 = parseInt($('input[name=amounty]').val(), 10);
var item2 = parseInt($('input[name=quantity]').val(), 10);
if(item1 !== NaN && item2 !== NaN) {  //This is a check to make sure the values are numbers
    var product = item1 * item2;
    $('#total').text(product);
    $('input[name=total]).val(product);    //This will put the value in the hidden input field
}

値が両方とも数値でない場合、このソリューションは計算を試みません。

お役に立てれば。

于 2012-12-06T13:42:22.343 に答える