2010-07-20 20 views
0

我正在尋找觸發(調用)一個函數的最佳方法,該函數將所有表格行中的所有輸入字段進行求和。 問題是,該字段可以通過手動(通過鍵入)或寫入到函數的值(不會觸發事件)進行操作。更新表格更改總額(tr添加,刪除,重點,類型...)

我想的是,SUM函數將觸發添加/刪除行(TR),按鍵,事件的內容...

順便說一句:我是克隆表中的行,所以它們是動態創建。

謝謝!

$(".val_field:input").live("focusout", function(){ 
    val = parseFloat($(this).val()); 
    sum += isNaN(val) ? 0 : val; 
    $("#sum").val(sum); 
}); 
+0

你說你現在正在動態創建表格行。什麼阻止你在那裏調用你的總和功能? – 2010-07-20 07:43:28

+0

您的示例代碼似乎在每次編輯時將輸入值添加到總和中,而不是保留實際的總和: - ? – 2010-07-22 16:21:03

+0

是的,我只是想知道是否有一個更優雅的方法,而不是從不同的地方(函數)數調用Sum函數... 此代碼只是一個示例...工作代碼...這是我需要的此時此刻。 謝謝! – Mission 2010-08-04 12:42:04

回答

0

這個問題是舊的,但任何答案可能是有用的

function recount(el){ 
    var sum = 0; 
    el.parents('table').find('.val_field:input').each(function(){ 
     var val = parseFloat($(this).val()); 
     sum += isNaN(val) ? 0 : val; 
    }); 
    $("#sum").val(sum); 
} 

$('table').on('keypress blur', '.val_field:input', function(){ 
    recount($(this)); 
}); 

當然,你也可以在行去除過多適用recount()(這就是爲什麼我因式分解的話)。