2011-08-31 11 views
1

数値を入力するためのテキストフィールドを持つテーブルがあります。このフィールドは繰り返し行テーブルにあります。項目IDは「金額」です。私は、ID 'amount'のテキストフィールドにすべての値を追加し、別のテーブルにある同じフォームの 'totals'というテキストフィールドに合計を表示します。私はjqueryでの経験が限られていて、実際にはスタックオーバーフロー時にポストを読んでテーブル行を作成して削除することができました。 each()を使ってみましたが、デフォルトの行である最初の行でのみ動作します。述べたようにJqueryリピートテーブル行に合計を追加する

$("#amount").each(function() { 

     $(this).keyup(function(){ 
      calculateSum(); 
     }); 
    }); 
    function calculateSum() 
    { 

    var sum = 0; 
    //iterate through each textboxes and add the values 
    $("#amount").each(function() { 

     //add only if the value is number 
     if(!isNaN(this.value) && this.value.length!=0) { 
      sum += parseFloat(this.value); 
     } 

    }); 
    //.toFixed() method will roundoff the final sum to 2 decimal places 
    $("#sum").html(sum.toFixed(2)); 
    } 

しかし、それはHTMLだけでロードされた最初のデフォルトの行で動作します:

$("#addrow").click(function(){ 
     alert("It works."); 


     //$('#description tr:last').after('<tr>...</tr>'); 
     $('#description tr:last').after('<tr><td align="center"><label for="description"></label><input name="description"type="text"style="background-color:#CCC;" id="description" size="70"/></td><td align="center"><label for="amount"></label><input type="text"style="background-color:#CCC;"name="amount"id="amount"/></td><td>&nbsp;</td><td>&nbsp;</td></tr>'); 

}); 

値を追加するためのコードは、この1つは(サイトからそれを得た)です。 jqueryを使って行を追加した後に入力した値は集計されません。

答えて

2

これは、私が考えるクラスを使用する必要があるIDを使用しているためです。

$("#amount") //using each here makes no sense as you have only one element returned 

マッチのみ最初ID

$(".amount") 

はすべての発生に一致しています。それに応じてHTMLを変更してみてください。

+0

動作しませんでした。すべてをクラスに変更しました。問題は、私がその場で作成した行に入力した値を加算しないということです。私は合計関数は、HTML全体を繰り返し、id \ class 'amount'のフィールドを追加する必要があると思います – MaxI

+0

jsfiddle.netに例を投稿できますか? –

関連する問題