Результат расчета не отображается

У меня есть код jquery, который вычисляет общую сумму.

$("#quantity").on("change keyup paste", function() {
  var quantity = $(this).val();
  //$('#display').text(quantity);
})

$("#buy").on("change keyup paste", function() {
  var buy = $(this).val();
})

var total_amnt = (((quantity * buy) * 5) / 100) + (quantity * buy);
$('#tot_amnt_display').text(total_amnt);
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<table class = "table">
  <tbody>
    <tr style = "text-align: center;">
      <td>Quantity</td>
      <td>Buy</td>
    </tr>
    <tr>
      <td><input type = "number" class = "form-control" id = "quantity" placeholder = "Quantity" name = "quantity"></td>
      <td><input type = "number" class = "form-control" id = "buy" placeholder = "Buy Amount" name = "buy"></td>
    </tr>
  </tbody>
</table>
<table class = "table table-bordered table-dark">
  <tbody>
    <tr>
      <td>Total Amount</td>
      <td><span id = "tot_amnt_display"></span></td>
    </tr>
  </tbody>
</table>

В результате приведенного выше кода он просто показывает NaN.

При загрузке страницы При вводе значений в поле ввода!

А чем вы пытались отладить проблему? Не должно быть слишком сложно проверить, правильно ли читается ввод или какие части вычислений идут не так.

Nico Haase 06.04.2019 13:47
Поведение ключевого слова "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) для оценки ваших знаний,...
0
1
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Попробуйте следующим образом:

$("#quantity, #buy").on("change keyup paste", function() {
  var quantity = Number($('#quantity').val());
  var buy  = Number($("#buy").val());
  var total_amnt = (((quantity * buy) * 5) / 100) + (quantity * buy);
  $('#tot_amnt_display').text(total_amnt);
})
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<table class = "table">
  <tbody>
    <tr style = "text-align: center;">
      <td>Quantity</td>
      <td>Buy</td>
    </tr>
    <tr>
      <td><input type = "number" class = "form-control" id = "quantity" placeholder = "Quantity" name = "quantity"></td>
      <td><input type = "number" class = "form-control" id = "buy" placeholder = "Buy Amount" name = "buy"></td>
    </tr>
  </tbody>
</table>
<table class = "table table-bordered table-dark">
  <tbody>
    <tr>
      <td>Total Amount</td>
      <td><span id = "tot_amnt_display"></span></td>
    </tr>
  </tbody>
</table>

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