Как умножить значение столбца A на значение столбца B, чтобы получить значение столбца c в JavaScript - PullRequest
0 голосов
/ 28 ноября 2018

Пожалуйста, помогите разобрать эту проблему, я хотел бы умножить значение на столбец A, скажем, количество на значение столбца B, скажем, Cost, чтобы получить значение столбца C Total.С помощью только синтаксического анализа одной строки таблицы можно добиться этого, но я застрял, если столбец Количество, которое является редактируемым значением, изменяется. Итого не изменяется. Так как я могу достичь, как, например, после завершения редактирования пользователя или после нажатия клавиши ввода.

        $table.append(
            '<tr class="dynamic">' +
            '<td> <input type = "hidden"  class= "txtStockID" name = 
            "StockID"  ' +
            'value = "' +id + '" /> ' +id+ '</td>' +
            '<td>' +
            item +
            '</td>' +
            '<td id="qty" class= "qty" type="number" contenteditable>' +
            qty +
            '</td>' +
            '<td>' +
            retail +
            '</td>' +
            '<td>' +
            cost +
            '</td> ' +
            '<td>' +
            this.cells[5].innerHTML +
            '</td>' +
            '<td>' +
            tax +
            '</td>' +
            '<td>' +
            vat +
            '</td>' +
            '<td id="total">' +
            total +
            '</td>' +
            '<td><a data-itemId="0" href="#" class="deleteItem btn btn- 
              danger btn-flat btn-xs ' +
            'glyphicon glyphicon-trash"></a>' +
            '</td>' +
            '</tr>'
            );
            $(document).on('change, keyup',
                $('.qty'),
                function () {
                    var rows = $('.dynamicRows');
                    $.each(rows,
                        function (index, item) {
                            var quantity = 
                     Number($(this).children('td').eq(2).text());
                            var cost = 
                         Number($(this).children('td').eq(4).text());
                            var amount = (quantity * cost).toFixed(2);
                            $(this).children('td').eq(8).val(amount);
                        });

                          });

                    update_total(); 
                 }
           });

1 Ответ

0 голосов
/ 28 ноября 2018

Убедитесь, что вторым аргументом вашего связывателя событий on () является строковый селектор (например, '.qty'), а не объект jQuery => http://api.jquery.com/on/.

    $(document).on('keyup', '.qty', function () {
        var rows = $('.dynamic');
        $.each(rows, function (index, item) {
            var quantity = 
                Number($(this).children('td').eq(2).text());
            var cost = 
                Number($(this).children('td').eq(4).text());
            var amount = (quantity * cost).toFixed(2);
            $(this).children('td').eq(8).text(amount);
        });

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