0

textboxes我的表格上有一对。很少的费用和平衡。

当费用发生变化时,我使用 javascript 来计算余额textboxes

$(document).ready(function () {


    // add up main numbers
    $("input[class*='add']").change(function (event) {
        var sum = 0;
        var subsum = 0;
        var num = 0;
        $("input[class*='add']").each(function (event) {
            num = parseInt($(this).val()) || 0;
            sum = sum + num;
        });
        $("input[class*='minus']").each(function (event) {
            num = parseInt($(this).val()) || 0;
            sum = sum - num;
        });
        $("input[class*='addcost']").each(function (event) {
            num = parseInt($(this).val()) || 0;
            subsum = subsum + num;
        });
        var balance = $("input[id*='txtBegBal']").val() - sum;
        $("input[id*='txtEnding']").val(balance);
        $("input[id*='txtTotalCost']").val(subsum);
    });

结果在屏幕上显示正确,但是当我单击“保存”时,txtTotalCost仍然显示该值,之前javascript已对其进行了更新,因此无法正确保存。

有人可以指出我正确的方向吗?

我在 if (!Page.IsPostBack). 我为“费用”更改的值可以很好地传递,只是计算字段不是。

4

2 回答 2

2

这里只是一个猜测,但 txtTotalCost 是否被禁用?禁用的文本字段不会像这样更新,因为客户端浏览器在禁用时不会将表单数据发送回服务器。在这种情况下,您将获得视图状态中的旧值。尝试启用它,或者您可以使用标签和隐藏的输入字段。

于 2013-10-03T16:05:11.553 回答
0

第二个建议是您的字段尚不存在。尝试使用

 $("input[class*='add']").on('change', function() { 
     // your code here 
 });
于 2013-10-22T06:48:48.900 回答