保存时,在javascript计算之后,值不会更新

本文关键字:之后 更新 计算 javascript 保存 | 更新日期: 2023-09-27 18:33:51

我的表格上有几个textboxes。费用少,余额少。

当费用textboxes发生变化时,我使用 javascript 来计算余额,如下所示:

$(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)内做了我所有的填充.我为"费用"更改的值传递得很好,只是计算字段没有。

保存时,在javascript计算之后,值不会更新

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

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

 $("input[class*='add']").on('change', function() { 
     // your code here 
 });