Противоречивая информация об атрибуте «проверено» HTML-флажка

Согласно этой статье MDN, атрибут checked флажка указывает только на то, установлен ли флажок по умолчанию, а не на его текущее состояние.

Однако самое простое тестирование показывает, что оно действительно отражает текущее состояние флажка:

<input type = "checkbox" id = "test">
<button type = "button" onclick = "console.info(document.querySelector('#test').checked);">Test</button>

Статья MDN неверна или браузеры просто не соответствуют приведенной здесь спецификации?

да, в статье неправильная "проверено — проверено ли управление" смотрите спецификацию

codingtuba 05.05.2024 17:34
Поведение ключевого слова "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
1
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В статье поясняется , что значение HTMLInputElementchecked обновляется в зависимости от состояния, о чем вы можете прочитать больше здесь.

При этом я понятия не имею, как объяснить разницу между этими понятиями, и не уверен, что сам ее понимаю. Любая ясность приветствуется!

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

Статья MDN верна. Браузеры тоже правы. Несоответствие объясняется тем, что флажок HTML имеет как атрибут содержимого checked, так и свойство checked JavaScript, которые связаны, но различны. В статье обсуждается первое, тогда как в вашем коде используется второе.

Атрибут содержимого checked соответствует фактическому атрибуту checked, checked = "" или checked = "checked", если таковой имеется, в HTML-разметке элемента <input>. Вы можете получить значение атрибута, вызвав метод Element.getAttribute:

<input type = "checkbox" id = "test" checked = "checked">
<button type = "button" onclick = "console.info(document.querySelector('#test').getAttribute('checked') ?? 'null');">Log Attribute</button>

В приведенном выше фрагменте флажок установлен по умолчанию, и кнопка будет регистрировать строку "checked" независимо от того, включаете ли вы флажок или выключаете его.

Напротив, как вы заметили, свойство JavaScript checked отражает текущее состояние флажка:

<input type = "checkbox" id = "test" checked = "checked">
<button type = "button" onclick = "console.info(document.querySelector('#test').checked);">Log Property</button>

Спасибо ! Я понятия не имел, что эти вещи разделены, мой основной язык — C x)

ice-wind 06.05.2024 12:40

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