Как сменить значение value?

Рейтинг: 0Ответов: 1Опубликовано: 04.08.2023

Подскажите пожалуйста как изменить итоговую сумму когда в value что-то ввели? И как сложить правильно все unput.value? если есть только одно value то все выводится, как только добавляю другие функции сразу нечего не происходит. Спасибо

const totalPrice = document.querySelector('.total-new-price');
const optionPrice = document.querySelectorAll('.options__input');
const inputNumber = document.querySelector('#number');
const inputNumberAttendants = document.querySelector('#number-2');

function optionPriceTotal() {
    optionPrice.forEach(n => {
        n.addEventListener("change", function (e) {
            const optionPriceSum = n.value;
            return optionPriceSum;
        });
    });
}

function inputNumberTotal() {
        const inputNumberTotal = inputNumber.value * 1280;
  return inputNumberTotal;
}

function inputNumberTotal_2() {
    if (inputNumber_2 >= 3) {
        const inputNumberSum_2 = inputNumber_2 * 1280; // количество больше 3
        return inputNumberSum_2;
    } else {
        const inputNumberSum_3 = inputNumber_2 * 0; // количество меньше 3
        return inputNumberSum_3;
    }
}

totalPrice.innerText = inputNumberTotal() + inputNumberTotal_2() + optionPriceTotal();
<div class="options">
  <div class="options__item">
    <input id="o_1" class="options__input" checked type="radio" value="1000" name="option">
    <label for="o_1" class="options__label"><span class="options__text">С питанием</span></label>
  </div>
  <div class="options__item">
    <input id="o_2" class="options__input" type="radio" value="2000" name="option">
    <label for="o_2" class="options__label"><span class="options__text">Без питания</span></label>
  </div>
</div>
<input id="number" autocomplete="off" type="text" value="3" name="form[]"class="input">
<input id="number-2" autocomplete="off" type="text" value="3" name="form[]" class="input">
<br>
<br>
<div class="total-new-price">1000</div>

Ответы

▲ 0

как изменить итоговую сумму когда в value что-то ввели? И как сложить правильно все unput.value?

Все value можно сложить вот так...

document.addEventListener("input", sum)
sum()
//
function sum() {
  const v = [...document.querySelectorAll('[value]')].reduce((s, o) => {
    if (o.type === 'radio' && !o.checked) return s
    return s + +o.value
  }, 0)
  document.querySelector('.total-new-price').textContent = v
}
<div class="options">
  <div class="options__item">
    <input id="o_1" class="options__input" checked type="radio" value="1000" name="option">
    <label for="o_1" class="options__label"><span class="options__text">С питанием</span></label>
  </div>
  <div class="options__item">
    <input id="o_2" class="options__input" type="radio" value="2000" name="option">
    <label for="o_2" class="options__label"><span class="options__text">Без питания</span></label>
  </div>
</div>
<input id="number" autocomplete="off" type="text" value="3" name="form[]"class="input">
<input id="number-2" autocomplete="off" type="text" value="3" name="form[]" class="input">
<br>
<br>
<div class="total-new-price"></div>