1

我有一个小计的 js 代码,当我更改其文本字段的值时,这个小计会发生变化,但是,由于 TotalSavings 和 TotalVariable 的这个字段发生了变化,它也应该改变我的 TotalExpenses 的值,但它没有这样做。我的 TotalSavings、TotalVariable 和 TotalExpenses 的文本字段是只读的,我怎样才能让我的 TotalExpenses 根据我的小计中的值进行更改:TotalSavings 和 TotalVariable

这是我的小计的js代码,

$(function() {
    $("#Insurance, #COL, #Saveup, #SSS").keyup(function() {
        var i = parseInt($("#Insurance").val(), 10);
        var c = parseInt($("#COL").val(), 10);
        var s = parseInt($("#Saveup").val(), 10);
        var e = parseInt($("#SSS").val(), 10);
        $("#TotalSavings").val(i + c + s + e);
    });
});


$(function() {
    $("#Fares, #Recreation, #OtherExpenses").keyup(function() {
        var f = parseFloat($("#Fares").val(), 10);
        var r = parseFloat($("#Recreation").val(), 10);
    var o = parseFloat($("#OtherExpenses").val(), 10);
        $("#TotalVariable").val(f + r + o);
    });
});

这是我的全部 js 代码,

$(function() {
    $("#TotalSavings, #TotalVariable").keyup(function() {
        var t1 = parseFloat($("#TotalSavings").val(), 10);
        var t2 = parseFloat($("#TotalVariable").val(), 10);
        $("#TotalExpenses").val(t1 + t2);
    });
});
4

1 回答 1

2

不要使用keyUp处理程序进行总值计数,为此使用函数。在您的情况下,永远不会调用and的keyUp回调函数,因为更改是通过脚本以编程方式进行的,而不是通过用户输入进行的。TotalSavingsTotalVariable

$(function() {
    $("#Insurance, #COL, #Saveup, #SSS").keyup(function() {
        var i = parseInt($("#Insurance").val(), 10);
        var c = parseInt($("#COL").val(), 10);
        var s = parseInt($("#Saveup").val(), 10);
        var e = parseInt($("#SSS").val(), 10);
        $("#TotalSavings").val(i + c + s + e);
        updateTotalExpenses();
    });

    $("#Fares, #Recreation, #OtherExpenses").keyup(function() {
        var f = parseFloat($("#Fares").val(), 10);
        var r = parseFloat($("#Recreation").val(), 10);
    var o = parseFloat($("#OtherExpenses").val(), 10);
        $("#TotalVariable").val(f + r + o);
        updateTotalExpenses();
    });
});


function updateTotalExpenses() {
    var t1 = parseFloat($("#TotalSavings").val(), 10);
    var t2 = parseFloat($("#TotalVariable").val(), 10);
    $("#TotalExpenses").val(t1 + t2);
});
于 2013-05-31T16:54:17.337 回答