0

行の入力の合計を計算し、最後に総計に追加するコードがあります。これは現在、以下のコードで機能しています。

$(":text[name='qty[]'],:text[name='rate[]']").keyup(function()
{
    var totalamount = 0.00;
    $("ul.rowData").each(function()
    {
        var quantity = +$(this).find(":text[name='qty[]']").val() || 0;
        var rate = +$(this).find(":text[name='rate[]']").val() || 0;
        var subtotal = quantity * rate;
        $(this).find(":text[name='price[]']").val(subtotal.toFixed(2));
        totalamount += subtotal;
    });
    $("#totalprice").val(totalamount.toFixed(2));
});

次に、フィールドの行を追加する[行の追加]ボタンがあります。

$('.mainForm').find('.addItem').click(function()
{
    $('.invoiceItems').append('<ul class="rowData">' +
    '<li class="txtLg"><span class="sep">Item:</span><input type="text" name="item[]" maxlength="255" value=""></li>' +
    '<li class="txtLg"><span class="sep">Description:</span><input type="text" name="description[]" maxlength="255" value=""></li>' +
    '<li class="txtSm"><span class="sep">Rate:</span><input type="text" name="rate[]" maxlength="10" value="0.00"></li>' +
    '<li class="txtSm"><span class="sep">Qty:</span><input type="text" name="qty[]" maxlength="5" value="1"></li>' +
    '<li class="txtSm"><span class="sep">Price:</span><input type="text" name="price[]" maxlength="10" value="0.00"><input type="hidden" name="itemid[]" value="0"></li>' +
    '</ul>').fadeIn(500);
    return false;
});

私の質問は、[行の追加]をクリックすると、フィールドに数値を追加しても、フィールドの合計が自動的に計算されないことです。なぜ何かアイデアはありますか?

4

2 に答える 2

0

それを行うコードがないため、再計算されません:)

基本的に合計を計算し、それをページに追加します。オリジナルが変更されたときにこれらの合計を再計算するには、追加のコードが必要です。ところで、おそらく既存のコードの一部を再利用するでしょう。

.keyup().change()jQuery イベントを見てください。前者はキーが離されるたびにトリガーされ、後者は入力がフォーカスを失ったときにのみトリガーされます。合計フィールドを更新するには、両方のいずれかを使用することをお勧めします。

$('.sep').on('change', function(e) {
  // stuff
});
于 2012-07-27T19:55:59.650 に答える
0

$().keyup(function(){}}ページ要素に動的に追加されたバインドが機能していません

$(":text[name='qty[]'],:text[name='rate[]']").live('keyup',function(){
   ...
}
于 2012-07-27T19:58:35.247 に答える