2013-10-03 54 views
0

我的表格上有幾個textboxes。很少費用和餘額。保存時未更新值,經過javascript計算

我使用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)之內完成了我所有的工作。我爲「費用」更改的值得到了正確的通過,這只是計算的字段不是。

+0

其中是保存更改的其餘代碼。以及保存點擊發生了什麼.. –

+0

你可能可以放在一起顯示它不工作的jsfiddle嗎? –

回答

2

只是猜測在這裏,但txtTotalCost禁用? 禁用的文本字段不會像這樣更新,因爲客戶端瀏覽器在禁用時不會將表單數據發送回服務器。在這種情況下,您將獲得處於視圖狀態的舊值。嘗試啓用它,或者您可以使用標籤和隱藏的輸入字段。

0

第二個建議是您的字段尚不存在。嘗試使用

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