PassFront
  1. PassFront
  2. База знаний
  3. Атрибуты HTML

Как работают булевы атрибуты в HTML и почему disabled="false" всё равно отключает элемент?

Атрибуты HTML

Булев атрибут включается самим фактом присутствия на элементе, а его значение браузер не читает.

Поэтому <button disabled="false"> всё равно создаёт отключённую кнопку: атрибут есть, значит он «включён». Чтобы выключить, атрибут нужно убрать.

<button disabled>Отправить</button>
<button disabled="">Тоже отключена</button>
<button disabled="false">И эта тоже отключена</button>
<button>Активна</button>

Типичные булевы атрибуты

disabled, checked, required, readonly, hidden, autofocus, multiple, open, defer, async.

Атрибут и свойство в DOM

В JavaScript используйте свойство: button.disabled = false удалит атрибут. В React disabled={false} тоже корректно не выводит атрибут.

Не путать с перечислимыми атрибутами вроде contenteditable="false" или aria-expanded="false": у них значение false читается и работает.

Коротко для собеседования

Булев атрибут включает само присутствие, значение не читается, поэтому disabled="false" всё равно отключает элемент. Чтобы выключить, атрибут удаляют.

Другие вопросы раздела