Задать вопрос
Hardjuice
@Hardjuice
Верстальщик

Как сделать калькулятор стоимости?

Только изучаю Javascript, сейчас решил сделать калькулятор стоимости услуг.
Сейчас только при изменение одного value в инпуте сразу же меняется стоимость (использую oninput). Как этот метод (или как-то по другому) распространить на оба inputa с разными id, при этом, чтобы значения складывались?

Код на jsfiddle.
  • Вопрос задан
  • 308 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Решения вопроса 3
Как вариант https://jsfiddle.net/3qmxg5z7/ но можно написать лучше
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Делаете общую функцию пересчёта суммы, где обходите все элементы. Обработку события input делегируете.

const BASE_PRICE = 2650;
const ITEM_PRICE = 350;

function calc() {
  const price = Array.prototype.reduce.call(
    document.querySelectorAll('.field-item__input input'),
    (acc, n) => acc + n.value * ITEM_PRICE,
    BASE_PRICE
  );

  document.querySelector('#result').innerText = `${price} руб.`;
}

document.querySelector('.form-fields__items').addEventListener('input', calc);
calc();
Ответ написан
Комментировать
@Bhudh
Как-то вот так: https://jsfiddle.net/76ksr1fm/19/
Значения, которые могут поменяться (цены), лучше вынести в отдельные переменные, функцию-апдейтер тоже объявить отдельно, и не присваивать on-свойства — это вчерашний век.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы