Значение не обновляется при сохранении после вычислений javascript

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 txtTotalCost его, поэтому он не будет сохранен правильно.

Может кто-нибудь, пожалуйста, укажите мне в правильном направлении?

Я делаю все свое if (!Page.IsPostBack) в if (!Page.IsPostBack). Значения, которые я изменяю для "расходов", передаются в порядке, это просто вычисленное поле, которое не является.

  • 0
    где остальные коды, которые сохраняют изменения. И что происходит при сохранении клика ..
  • 0
    Не могли бы вы собрать jsfiddle, показывающий, что он не работает?

2 ответа

2
Лучший ответ

Просто гадать здесь, но отключен txtTotalCost? Отключенные текстовые поля не будут обновляться так, потому что браузер клиента не отправляет данные формы обратно на сервер, когда он отключен. В этом случае вы получите старое значение, которое находится в viewstate. Попробуйте включить его, или вы можете использовать ярлык и скрытое поле ввода.

0

Второе предложение состоит в том, что ваши поля еще не существуют. Попробуй использовать

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню