Как мне автоматически суммировать два поля в другое поле?

У меня есть две коробки, одна с именем AuthorizedAmount, а другая с именем LessLaborToDate:

<div class = "col-md-6">
  <div class = "form-group">
    <label>Authorized Amount</label>
    <div class = "input-group">
      <span class = "input-group-addon">$</span>
      <input type = "number" class = "form-control" name = "AuthorizedAmount" min=0 step = "0.01" required>
    </div>
  </div>
</div>
<div class = "col-md-6">
  <div class = "form-group">
    <label>Less Labor to Date</label>
    <div class = "input-group">
      <span class = "input-group-addon">$</span>
      <input type = "number" class = "form-control" name = "LessLaborToDate" min=0 step = "0.01" required>
    </div>
  </div>
</div>

Как я могу автоматически суммировать эти два значения в другом поле, названный Subtotal?

<div class = "col-md-6">
  <div class = "form-group">
    <label>Subtotal</label>
    <div class = "input-group">
      <span class = "input-group-addon">$</span>
      <input type = "number" class = "form-control" name = "Subtotal" placeholder = "Authorized Amount minus Less Labor to Date" min=0 step = "0.01" readonly>
    </div>
  </div>
</div>

Примените обработчик событий input к обоим полям, затем получите их значения и добавьте их. Если у вас есть конкретная проблема с этим, опубликуйте JS-код, который вы пробовали.

Rory McCrossan 29.05.2018 16:28

@ freedomn-m Я не ... Я не мог придумать решения.

Helene 29.05.2018 16:32
Поведение ключевого слова "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
2
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Используя jquery, примерно так:

$("input[name='AuthorizedAmount'], input[name='LessLaborToDate']").change(function() {
    var sum = $("input[name='AuthorizedAmount']").val() + $("input[name='LessLaborToDate']").val();
    $("input[name='Subtotal']").val(sum);
});

Возможно, вам придется добавить несколько нулевых проверок и parseInt, но вы поняли идею, я надеюсь

Спасибо, я попробую.

Helene 29.05.2018 16:37

Когда я пытаюсь, он фиксирует либо число из AuthorizedAmount, либо число из LessLaborToDate в поле «Промежуточный итог», но не оба сразу. По какой-то причине он очищает поле Промежуточный итог, когда я пытаюсь добавить число как в AuthorizedAmount, так и в LessLaborToDate.

Helene 29.05.2018 16:45

Возможно, вам потребуется сделать parseInt перед добавлением двух значений var sum = parseInt($("input[name='AuthorizedAmount']").val()) + parseInt($("input[name='LessLaborToDate']").val());

Sacha 29.05.2018 16:49

Идеально - когда я добавляю parseInt, он захватывает всю сумму. Есть ли способ захвата десятичных сумм? Например, если я складываю 100,23 и 100,48, будет отображаться только целое число 200.

Helene 29.05.2018 16:52

Попробуйте вместо этого использовать parseFloat

Sacha 29.05.2018 16:54

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