Пытаясь установить флажок через 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"
При загрузке флажок по умолчанию установлен правильно, но когда я пытаюсь снять флажок и установить новый, ничего не происходит (визуально).
Спасибо за любую помощь.
Настройка checked = true
должна работать. Происходит что-то еще, но это невозможно сказать без кода, воспроизводящего проблему.
Я не совсем уверен, что вы пытаетесь сделать, но я думаю, что вы хотите переключить один флажок в зависимости от состояния другого.
Посмотри на это:
/* 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","");
Это позволит вам получить такой же результат, как указано выше. Надеюсь, у вас получилось :)
Пожалуйста, предоставьте работоспособныйминимальный воспроизводимый пример, который воспроизводит проблему. Предоставлено недостаточно контекста кода