Выполнение вычитания на JavaScript

У меня есть 3 столбца, и я пытаюсь вычесть два столбца на JavaScript. Данные первого столбца (столбец A) взяты из базы данных, данные второго столбца (столбец B) вводятся пользователем, а третий столбец предназначен для значения. Я успешно выполнил сложение, но на самом деле мне нужно вычитание. Я попытался изменить знак + на -, но, как оказалось, дал мне неправильное значение. Может кто-нибудь мне помочь?

это мой код

<tr>
                        <td style = "text-align: center; vertical-align:middle;"><?php echo $no; ?></td>

                        <td style = "vertical-align:middle;"><?php echo $data[$i]['nama_barang']?></td>

                        <td style = "text-align: right; vertical-align:middle;" class = "so"><?php echo $data[$i]['stock']; ?></td>

                        <td><input type = "number" class = "form-control so" id = "stock_op" name = "stock_op" style = "text-align: left"></td>

                        <td style = "text-align: right; vertical-align:middle; font-weight:bold;"><output class = "result"></output></td>
                    </tr>
                    <?php                                           
                    }
                ?>
    <script src = "../js/jquery.min.js"></script>
    <script>
    $(document).on('input','.so',function(){
var grandSum = 0;
        var totalSum = 0;
        var currentRow = $(this).closest('tr');
        currentRow.find('.so').each(function(){
            var inputVal = ($(this).is('input')) ? $(this).val() : parseInt($(this).html());
            if ($.isNumeric(inputVal)){
                totalSum += parseFloat(inputVal);
            }
        });
        currentRow.find('.result').val(totalSum);
    });

    </script>

                </tr>

Это таблица Выполнение вычитания на JavaScript

Вы можете получить значения из базы данных внутри вашего кода javascript и выполнить на нем любой процесс, например, так var phpValue = "<?php echo $data[$i]['nama_barang']?>";

Amr Aly 27.09.2018 04:26

@AmrAly, я не понимаю ..

neirasyta 27.09.2018 04:34
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
343
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны добавить первое значение к общей сумме и вычесть второе значение как

if ($.isNumeric(inputVal)){
    if (totalSum==0)
            totalSum += parseFloat(inputVal);
     else
           totalSum -= parseFloat(inputVal);

        }

Нет, мне просто нужно вычесть, но если я заменю totalSum += parseFloat(inputVal); на totalSum -= parseFloat(inputVal);, это даст мне неверный результат.

neirasyta 27.09.2018 04:32

Во-первых, у вас должно быть значение первой строки в totalSum, затем вы можете вычесть из него второе значение, просто попробуйте запустить этот код

crack_iT 27.09.2018 04:37

Если вы вычитаете значение первой строки из 0, а затем снова вычитаете значение второй строки из результата, как вы ожидаете получить правильный результат, я надеюсь, что вы его сейчас получите

crack_iT 27.09.2018 04:39
Ответ принят как подходящий

Поскольку вы просматриваете как стандартный, так и статический номер

<?php echo $data[$i]['stock']; ?>

т.е. 4 / 13

и номер пользователя

<input type = "number" class = "form-control so" id = "stock_op" name = "stock_op" style = "text-align: left">

Вам все равно нужно добавить номер запаса и вычесть только номер, определенный пользователем.

Так что ты не можешь сделать

totalSum -= parseFloat(inputVal);

так как это вычитает оба.

Итак, вам нужно использовать -$(this).val() в

var inputVal = ($(this).is('input')) ? -$(this).val() : parseInt($(this).html());

так как вы хотите вычесть только значение поля ввода.

См. http://jsfiddle.net/gujex58p/

еще раз, что, если я хочу столбец B - столбец A вместо столбца A - столбец B? поставил - расписался на $(this).closest('tr');?

neirasyta 27.09.2018 05:10

Нет, вы бы использовали его на -parseInt($(this).html());, так как это значение из столбца A.

Sean 27.09.2018 05:23

Другие вопросы по теме