JS: для параметра установлено значение true, не работает

Пытаясь установить флажок через addEventListener в JS, я уже пробовал с

element.checked = true;
element.setAttribute('checked', true);
element.setAttribute('checked', "checked");

Я вижу в консоли, что мой check установлен на true (не уверен, что проблема в том, что логическое значение отображается как строка «true» или это просто хромовое представление), но элемент не получает галочку.

input id = "element" class = "element" name = "element" type = "checkbox" value = "1" checked = "true"

При загрузке флажок по умолчанию установлен правильно, но когда я пытаюсь снять флажок и установить новый, ничего не происходит (визуально).

Спасибо за любую помощь.

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

charlietfl 27.10.2018 17:27

Настройка checked = true должна работать. Происходит что-то еще, но это невозможно сказать без кода, воспроизводящего проблему.

Mark 27.10.2018 17:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
866
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

Посмотри на это:

/* get the checkboxes */
const checker1 = document.getElementById('checker');
const checker2 = document.getElementById('checker2');

/* now listen for change on checker1 and action */
/* change the selected state of checker two to be opposite of checker 1 */
checker1.addEventListener('change', () => checker2.checked = !checker1.checked);
<p>
  <label for=checker>Click me to toggle the other</label>
  <input type=checkbox id=checker>
</p>

<p>
  <label>I will be toggled</label>
  <input type=checkbox id=checker2 checked>
</p>

Итак, дело в том, что если бы вы должны были сделать это вручную, ваш код был бы таким правильным:

<input id = "element" checked>

Чтобы добиться того же с помощью javascript. Это произойдет только в том случае, если вы установите проверяемое значение в пустую строку. Нравится:

element.setAttribute("checked","");

Это позволит вам получить такой же результат, как указано выше. Надеюсь, у вас получилось :)

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