Из 2 калькуляторов работает только один
Нужно сделать 2 расчета стоимости на одной странице. Второй калькулятор подсчитывает значения и выводит сумму на первый калькулятор. Нужно чтобы они работали раздельно друг от друга. Готов заплатить за помощь!!
var lastId = 9; // номер последнего inputa
let res = document.getElementById('result');
let ress = document.getElementById('results')
function calc2() {
var price = 0;
inputs = document.querySelectorAll('input');
for (var i = 0; i < inputs.length; i+=2) { // посчитаем сумму всех инпутов
price += inputs[i].value * inputs[i+1].value;
inputs[i].addEventListener('change', calc2);
}
res.innerHTML = price;
}
function addQuestion() {
var d = document;
let inputs = document.querySelectorAll('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('change', calc2);
}
var newdiv = d.createElement("div");
newdiv.innerHTML = `<div class="line1">
<div class="label-cal">
<label class="ttll" for>Следующая панель</label>
</div>
<span class="nn">
<input class="num" id="num${++lastId}" type="number" value="0" name="">
x
<input class="num" id="num${++lastId}" type="number" value="0" name="">
см
</span>
</div> `;
document.getElementById("parentId").appendChild(newdiv);
inputs = document.querySelectorAll('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('change', calc2);
}
};
let input = document.getElementById('num');
let input2 = document.getElementById('num2');
let input3 = document.getElementById('num3');
let input4 = document.getElementById('num4');
let inputs = document.querySelectorAll('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('change', calc);
}
function calc(){
var price = 0;
price += parseInt(input.value) * parseInt(input2.value);
price += parseInt(input3.value) * parseInt(input4.value);
res.innerHTML = price;
}
<section id="calculator">
<div class="label-cal">
<label for>1-я панель</label>
</div>
<span class="nn">
<input id="num" type="number" value="0" name="">
x
<input id="num2" type="number" value="0" name="">
см
</span>
<div class="label-cal">
<label class="ttll" for>2-я панель</label>
</div>
<span class="nn">
<input id="num3" type="number" value="0" name="">
x
<input id="num4" type="number" value="0" name="">
см
</span>
<div id="add" onclick ="addQuestion()">Добавить</div>
<div id="parentId"></div>
<hr>
<div class="cal-line">
<span >Итого</span>
<span > руб</span>
<span id="result">0</span>
</div>
</div>
</section>
<section id="calculator">
<div class="label-cal">
<label for>1-я панель</label>
</div>
<span class="nn">
<input type="number" value="0" name="">
x
<input type="number" value="0" name="">
см
</span>
<div class="label-cal">
<label for>2-я панель</label>
</div>
<span class="nn">
<input type="number" value="0" name="">
x
<input type="number" value="0" name="">
см
</span>
<div id="add" onclick="addQuestion()" >Добавить</div>
<div id="parentId"></div>
<hr>
<div>
<span>Итого</span>
<span> руб</span>
<span id="results">0</span>
</div>
</section>
Ответы (1 шт):
Автор решения: Andrey Semykin
→ Ссылка
Если я правильно понял, требовалось чтобы первый калькулятор считал и выводил свою сумму, а второй - свою. Если я понял неправильно, то требовалось лучше объяснить задачу :)
var lastId = 9; // номер последнего inputa
let res = document.getElementById('result');
let ress = document.getElementById('results')
function calc2() {
var price = 0;
inputs = calculator.querySelectorAll('input');
inputs2 = calculator2.querySelectorAll('input');
for (var i = 0; i < inputs.length; i += 2) { // посчитаем сумму всех инпутов первого калькулятора
price += inputs[i].value * inputs[i + 1].value;
inputs[i].addEventListener('change', calc2);
}
res.innerHTML = price;
price = 0;
for (var i = 0; i < inputs2.length; i += 2) { // посчитаем сумму всех инпутов второго калькулятора
price += inputs2[i].value * inputs2[i + 1].value;
inputs2[i].addEventListener('change', calc2);
}
ress.innerHTML = price;
}
function addQuestion() {
var d = document;
let inputs = calculator.querySelectorAll('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('change', calc2);
}
var newdiv = d.createElement("div");
newdiv.innerHTML = `<div class="line1">
<div class="label-cal">
<label class="ttll" for>Следующая панель</label>
</div>
<span class="nn">
<input class="num" id="num${++lastId}" type="number" value="0" name="">
x
<input class="num" id="num${++lastId}" type="number" value="0" name="">
см
</span>
</div> `;
document.getElementById("parentId").appendChild(newdiv);
inputs = calculator.querySelectorAll('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('change', calc2);
}
};
function addQuestion2() {
var d = document;
let inputs2 = calculator2.querySelectorAll('input');
for (var i = 0; i < inputs2.length; i++) {
inputs2[i].addEventListener('change', calc2);
}
var newdiv = d.createElement("div");
newdiv.innerHTML = `<div class="line1">
<div class="label-cal">
<label class="ttll" for>Следующая панель</label>
</div>
<span class="nn">
<input class="num" id="num${++lastId}" type="number" value="0" name="">
x
<input class="num" id="num${++lastId}" type="number" value="0" name="">
см
</span>
</div> `;
document.getElementById("parentId2").appendChild(newdiv);
inputs2 = calculator2.querySelectorAll('input');
for (var i = 0; i < inputs2.length; i++) {
inputs2[i].addEventListener('change', calc2);
}
};
let input = document.getElementById('num');
let input2 = document.getElementById('num2');
let input3 = document.getElementById('num3');
let input4 = document.getElementById('num4');
let inputs = calculator.querySelectorAll('input');
let inputs2 = calculator2.querySelectorAll('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('change', calc2);
}
for (var i = 0; i < inputs2.length; i++) {
inputs2[i].addEventListener('change', calc2);
}
function calc() {
var price = 0;
price += parseInt(input.value) * parseInt(input2.value);
price += parseInt(input3.value) * parseInt(input4.value);
res.innerHTML = price;
}
<section id="calculator">
<div class="label-cal">
<label for>1-я панель</label>
</div>
<span class="nn">
<input id="num" type="number" value="0" name="">
x
<input id="num2" type="number" value="0" name="">
см
</span>
<div class="label-cal">
<label class="ttll" for>2-я панель</label>
</div>
<span class="nn">
<input id="num3" type="number" value="0" name="">
x
<input id="num4" type="number" value="0" name="">
см
</span>
<div id="add" onclick="addQuestion()">Добавить</div>
<div id="parentId"></div>
<hr>
<div class="cal-line">
<span>Итого</span>
<span> руб</span>
<span id="result">0</span>
</div>
</div>
</section>
<section id="calculator2">
<div class="label-cal">
<label for>1-я панель</label>
</div>
<span class="nn">
<input type="number" value="0" name="">
x
<input type="number" value="0" name="">
см
</span>
<div class="label-cal">
<label for>2-я панель</label>
</div>
<span class="nn">
<input type="number" value="0" name="">
x
<input type="number" value="0" name="">
см
</span>
<div id="add" onclick="addQuestion2()">Добавить</div>
<div id="parentId2"></div>
<hr>
<div>
<span>Итого</span>
<span> руб</span>
<span id="results">0</span>
</div>
</section>