Явно установлено disabled = "false" в HTML не работает
Я хотел бы явно указать кнопку как включенную в html файле. Причина в том, что мой код позже отключает кнопку для отключения, и если код сработает или я могу заметить, что кнопка отключена.
Я могу отключить кнопку с помощью
$("#btn").attr("disabled","true")
но затем html, содержащий:
<button id="btn" disabled="false">I want to be enabled!</button>
по-прежнему показывает кнопку как отключенную.
Инспектор показывает:
<button id="btn" disabled="">I want to be enabled!</button>
Я знаю, что могу сделать
$("#btn").removeAttr("disabled")
или аналогично, но это не удобно для многих элементов в html.
Ответы
Ответ 1
Удивительно, но HTML не использует логические значения для логических атрибутов.
В HTML логические атрибуты указываются либо простым добавлением имени атрибута, либо (особенно в XHTML) с использованием имени атрибута в качестве его значения.
<input type="checkbox" disabled> <!-- HTML -->
<input type="checkbox" disabled /> <!-- Also HTML -->
<input type="checkbox" disabled="disabled" /> <!-- XHTML and HTML -->
Это задокументировано в спецификации HTML: http://www.w3.org/TR/html5/infrastructure.html#boolean-attribute.
Ряд атрибутов являются логическими атрибутами. Наличие логического атрибута в элементе представляет истинное значение, а отсутствие атрибута представляет ложное значение.
Значения "true" и "false" недопустимы для логических атрибутов. Чтобы представить ложное значение, атрибут должен быть вообще опущен.
Ответ 2
Если вы используете AngularJS, попробуйте вместо этого ng-disabled
. В этом случае вы можете использовать такие вещи, как:
ng-disabled="true"
ng-disabled="false"
ng-disabled={{expression}}
и работает как положено....
Ответ 3
Я знаю, что это старая тема, но поскольку нет заметного ответа, помогает ли это? Это отвечает на вопрос с явным образом помеченным как включенным.
<button enabled>My Text</button>
<!-- Which also works as: -->
<button enabled="enabled">My Text</button>
Я тоже изучаю это для использования, чтобы включить кнопку при проверке. Надеюсь, это поможет кому-то.
Ответ 4
В будущем может помочь кому-то.
selectLanguage.onchange = function() {
var value = selectLanguage.value;
if (value != '') {
submitLanguage.removeAttribute('disabled');
} else {
submitLanguage.setAttribute('disabled', 'disabled');
}
// submitLanguage.setAttribute('enabled', 'enabled');
}