У меня есть пару 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
txtTotalCost
его, поэтому он не будет сохранен правильно.
Может кто-нибудь, пожалуйста, укажите мне в правильном направлении?
Я делаю все свое if (!Page.IsPostBack)
в if (!Page.IsPostBack)
. Значения, которые я изменяю для "расходов", передаются в порядке, это просто вычисленное поле, которое не является.
Просто гадать здесь, но отключен txtTotalCost? Отключенные текстовые поля не будут обновляться так, потому что браузер клиента не отправляет данные формы обратно на сервер, когда он отключен. В этом случае вы получите старое значение, которое находится в viewstate. Попробуйте включить его, или вы можете использовать ярлык и скрытое поле ввода.
Второе предложение состоит в том, что ваши поля еще не существуют. Попробуй использовать
$("input[class*='add']").on('change', function() {
// your code here
});