0

我有一个多行的表格。我想计算每一行的总数。即cost * unit价格并将结果放入总输入中。这是我尝试过的脚本:

<script>
$(document).ready(function(){
    var input;
    $('#p1').keyup(calculate('#p1'));
    $('#p2').keyup(calculate('#p2'));
});
function calculate(input)
{
    $(input + 'Total').val($(input).val() * $(input + 'cost').val());

}
</script>
4

1 回答 1

0

至少一个问题是该.keyup()方法需要一个函数。您在示例中使用的方式calculate是在添加事件时立即调用该函数。

为避免这种情况,您可以执行以下操作:

$('#p1').keyup(function () { calculate('#p1') });

另一种选择是让计算函数返回一个函数引用:

function calculate(input)
{
    return function () {
        $(input + 'Total').val($(input).val() * $(input + 'cost').val());
    }
}

然后,您可以像今天一样添加事件处理程序:

$('#p1').keyup(calculate('#p1'));
于 2014-01-15T07:39:34.743 回答