Столбцы Jquery Datatable Percentage и Amount - PullRequest
0 голосов
/ 09 июля 2019

Привет, я немного запутался в функции рендеринга данных jquery, у меня есть две колонки в моей таблице: один процент скидки, другой размер скидки, оба столбца зависят друг от друга. После ввода суммы скидки необходимо рассчитать процент скидки и наоборот.

Для этого я использовал функцию рендеринга столбцов JQuery datatables. https://datatables.net/reference/option/columns.render

Но, похоже, моя логика где-то нарушена, это простой расчет,

Проблема заключается в том, что обе функции рендеринга выполняются все время, независимо от того, какой столбец изменяется, например,

Общая сумма: 100

когда форма загружается, я ввожу скидку% 10, она работает нормально (без данных в поле суммы скидки), размер скидки изменяется на 10.

Но затем я пытаюсь изменить поле суммы скидки на 20, процент скидки не меняется, потому что, когда я вхожу в функцию рендеринга по порядку, сначала выполняется функция рендеринга процента скидки, и там ее значение по-прежнему равно 10, а сумма остается там без каких-либо изменений, с этим ограничением данных я могу достичь того, что я желаю?

{
  "targets": [6], // For Discount Percentage
  "render": function(data, type, row) {
    debugger;
    var amount1;
    if (data != '' && data != row.DISCPERCENT) {
      amount1 = Math.round((data * (row.QTY1 * row.RATE)) / 100);
      row.DISC_AMT = amount1;

      return amount1;
    }
  }
}

{
  "targets": [7], // Discount Amount
  "render": function(data, type, row) {
    debugger;
    //if ( row.DISC_AMT == data)
    //    return data;
    //else {
    var amount1;
    if (data != '' && data != row.DISC_AMT) {
      amount1 = Math.round((data / (row.QTY1 * row.RATE)) * 100);

      row.DISCPERCENT = amount1;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...