Всем привет!
Подскажите, как исправить проверку, что бы она работа корректно:
Данный код, забирает все имеющиеся input[type=radio], после проверкой if смотрит у какого из элементов стоит checked и забирает из этого объекта data-operation и передает в функцию для вычисления.
let buttonsOperations = document.querySelectorAll('input[type=radio]');
for (let i = 0; i < buttonsOperations.length; i++) {
if (buttonsOperations[i].checked === true) {
let operator = buttonsOperations[i].getAttribute('data-operation');
calculatorOperator(operator);
} else {
output.innerHTML = '<strong>Ошибка!</strong> Арифметическая операция не выбрана.';
}
}
Самое странное, что если убрать
else { output.innerHTML = '<strong>Ошибка!</strong> Арифметическая операция не выбрана.'; }
, то арифметические операции работают как надо, а вот если добавить else (что я очень хочу сделать), то происходит следующее. Он выполняет первое условие и переходить ко второму, то есть всегда получаю: Ошибка! Арифметическая операция не выбрана.
Это вполне логично, так как проверка идет внутри for, и на данный момент у меня 4 элемента, поэтому при любых раскладах буду получать:
buttonsOperations[i].checked === false → 3шт.
buttonsOperations[i].checked === true → 1шт.
Поэтому получается, что он выполняет 1 условие и переходи ко второму.
И я буксую на этом. Как составить условие, при котором, проверка выкинет ошибку: "Не выбрана ни одна арифметическая операция", только тогда, когда не выбран ни один input (typy=radio).
Возможно получилось несколько сумбурно :) за что извиняюсь, просто в голове вертится понимание из-за чего этот баг лезет, но я напрочь не понимаю, как его устранить((
Поэтому на всякий случай выложу:
КалькуляторСкрипт