Я делаю опросник и вот и меня возникла проблема.
При нажатии на
button (когда я не выбирал ни один
checkbox) не срабатывает в
if первое событие зато работает
else.
На данный момент, логика кнопки такова:
1. Я выбираю
checkbox и срабатывает событие
else
2. Я ничего не выбираю и срабатывает то же событие
else
В js, я не особо шарю, поэтому сможете помочь?
const form = document.querySelector('#form')
form.addEventListener('submit', onSubmit)
function onSubmit (event) {
event.preventDefault()
let listCheckbox = document.querySelectorAll('.i-6')
listCheckbox = [...listCheckbox]
// Проверяем выбран ли хотябы один ответ
if (!listCheckbox.filter(checkbox => checkbox.checked)) {
alert('Вы не выбрали ни одного ответа')
}
else{
form.addEventListener('submit', onSubmit)
alert('Вы подтверждаете действие?');
}
// Узнаем сколько всего правильных ответов
const rightAnswersCount = listCheckbox.filter(checkbox => Number(checkbox.value) === 1).length
// Узнаем сколько всего не правильных ответов
const wrongAnswerCount = listCheckbox.length - rightAnswersCount
// Узнаем количество правильных ответов
const rightAnswers = listCheckbox.filter(checkbox => Number(checkbox.value) === 1 && checkbox.checked).length
// Узнаем количество не правильных ответов
const wrongAnswer = listCheckbox.filter(checkbox => Number(checkbox.value) === 0 && checkbox.checked).length
// Уведомляем пользователя
console.log(`Вы ответили правильно на ${rightAnswers} из ${rightAnswersCount}`)
console.log(`Вы ответили не правильно на ${wrongAnswer} из ${wrongAnswerCount}`)
//Вывод ответа с процентами
console.log(`Процент правильных ответов: ${(rightAnswers / rightAnswersCount) * 100}`)
console.log(`Процент неправильных ответов: ${(wrongAnswer / wrongAnswerCount) * 100}`)
}