@yadscreech

Проверка input's radio на чек?

Почему не работает проверка на чек?
https://codepen.io/screech/pen/ExYWWra?editors=1111
<form action="">
  <input type="radio" name="r">
  <input type="radio" name="r">
  <input type="radio" name="r">
  <input type="radio" name="r">
  <button id="btn">Кнопка</button>
</form>

const btn = document.getElementById('btn'),
      inputs = document.querySelectorAll('input'),
      checkedInputs = inputs.checked;

btn.addEventListener('click', function(){
  event.preventDefault();
  console.log(checkedInputs);
})
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
надо каждый раз запрашивать querySelector когда хочешь чекнуть, checkedInputs не будет сама по себе обновляться

btn.addEventListener('click', function(){
  console.log(document.querySelector('input:checked'));
})
Ответ написан
@DanKud
Потому что inputs это коллекция узлов (элементов) и у этой коллекции нет свойства .checked. Оно есть только у каждого отдельного элемента в этой коллекции. Соответственно вам нужно их просто отфильтровать:
const btn = document.getElementById('btn'),
    inputs = document.querySelectorAll('input')

btn.addEventListener('click', function(){
    event.preventDefault();
    let checkedInputs = [...inputs].filter(n => n.checked);
    console.log(checkedInputs);
})
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
До 170 000 руб.
IT IS Kernel Новосибирск
от 100 000 руб.
Fundraise Up Санкт-Петербург
от 120 000 руб.