更新表更改的总和(tr添加,删除,焦点,键入...)

时间:2010-07-20 06:49:31

标签: javascript jquery xhtml

我正在寻找触发(调用)函数的最佳方法,该函数将对所有表行中的所有输入字段求和。 问题是,该字段可以手动操作(通过键入)或使用函数 - 写入它们的值(不触发事件)。

我希望sum函数会在add / remove row(tr),keypress,focusout ...上触发...

顺便说一下:我正在克隆表行,所以它们是动态创建的。

谢谢!

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

1 个答案:

答案 0 :(得分: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()(这就是我将其分解的原因)。