Поместите значение null, если ни один из флажков не установлен

    get_genre_value=this.value; //setting value of current check box to get_genre_value.

Здесь я глобально объявил var get_genre_value;, что необходимо для моего проекта, и я беру значение из get_genre_value при нажатии кнопки. Выбрать значение флажка и получить его было легко, но как я могу установить значение null для get_genre_value, если флажок не установлен, это заставило меня задуматься, так как get_genre_value будет использовать свое значение, хранящееся глобально, если я попытаюсь нажать кнопку второй время, не устанавливая ни одного флажка, любая помощь будет высоко оценена.

Пожалуйста, сделайте это настоящим минимальный воспроизводимый пример и при этом исправьте отступ и синтаксическую ошибку.

Andreas 23.04.2022 12:43

Вы пытались объявить и использовать 2 разные переменные?

Mohit 23.04.2022 12:44

Используете ли вы флажки, потому что можно не выбирать значение? Потому что вместо него можно было бы использовать переключатели, если невозможно выбрать значение без значения.

Apollo79 23.04.2022 12:46

@Mohit Я пытаюсь установить значение null, если ни один из флажков не установлен, будет ли полезно объявление 2 переменных для этого?

whynotcode 23.04.2022 12:47

@Apollo79 Apollo79 Я использовал около 17 флажков для своего проекта, я просто хочу знать, как я могу получить нулевое значение, если ни один из флажков не был отмечен

whynotcode 23.04.2022 12:48

Удаление всего, кроме одной строки без какого-либо смысла, все равно не является минимальный воспроизводимый пример

Andreas 23.04.2022 12:53
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Введение в технологический стек Twitch
Введение в технологический стек Twitch
В этой статье мы подробно рассмотрим стек Twitch, который подразделяется на следующий набор технологий:
8 полезных HTML-тегов, которые лучше использовать вместо <div>
8 полезных HTML-тегов, которые лучше использовать вместо <div>
Когда я только начинал изучать html, я использовал div для всего, это был один из первых тегов, которые я выучил, и казалось, что он работает в любой...
HTML5: API локального хранилища (Local Storage)
HTML5: API локального хранилища (Local Storage)
LocalStorage - это простой способ хранения данных в браузере пользователя.
Доступность HTML - программирование с инклюзивной перспективой
Доступность HTML - программирование с инклюзивной перспективой
Представьте, что вы хотите поехать на пляж. Представьте, что вы упорно трудились весь год и заслужили это. Прибыв на место, вы обнаруживаете, что...
3
6
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот пример того, как это сделать: Вы установили get_genre_value на null в начале. Для каждого флажка вы добавляете EventListener. В обратном вызове вы проверяете, установлен ли флажок:

  • Это: вы снимаете флажок, который был отмечен ранее (возможно, это null, если флажок не был установлен ранее) и устанавливаете get_genre_value в значение флажка.
  • Это не так: вы снова установили для get_genre_value значение null

let get_genre_value = null;

const checkboxes = document.querySelectorAll("input[name=select]");

checkboxes.forEach((checkbox) => {
  checkbox.addEventListener("change", (event) => {
    if (event.target.checked) {
      const checkedbefore = document.querySelector(`input[name=select][value=\"${get_genre_value}\"]`);
      
      if (checkedbefore !== null)
        checkedbefore.checked = false;

      get_genre_value = event.target.value;
    } else {
      get_genre_value = null;
    }
    
    console.log(get_genre_value);
  });
});
<input type="checkbox" name="select" value="1">
<input type="checkbox" name="select" value="2">
<input type="checkbox" name="select" value="3">
<input type="checkbox" name="select" value="4">

Спасибо, у меня есть несколько грубых идей, чтобы реализовать это в моем коде.

whynotcode 23.04.2022 13:10

Еще одна идея: сохранить текущий флажок в переменной, чтобы вы могли просто сделать currentlyCheckedCheckbox.checked = false и назначить ему другой флажок. Так что вам не нужно искать DOM с помощью document.querySelector all the time

Apollo79 23.04.2022 13:13

Другие вопросы по теме