我的表单上有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)
内完成所有填充。我为“费用”更改的值很好地传递,它只是计算字段不是。
答案 0 :(得分:2)
这里只是猜测但是txtTotalCost被禁用了吗? 禁用的文本字段不会像这样更新,因为客户端浏览器在禁用时不会将表单数据发送回服务器。在这种情况下,您将获得viewstate中的旧值。尝试启用它,或者您可以使用标签和隐藏的输入字段。
答案 1 :(得分:0)
第二个建议是您的字段尚未存在。尝试使用
$("input[class*='add']").on('change', function() {
// your code here
});