Привет, я немного запутался в функции рендеринга данных 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;
}
}
}