Атрибут disabled в JavaScript
В HTML существуют специальные атрибуты без значений, например, атрибут disabled , используемый для блокировки элементов. Для того, чтобы установить такой атрибут, соответствующему свойству требуется присвоить значение true , а чтобы убрать — значение false .
Давайте посмотрим на практике. Пусть у нас есть заблокированый инпут:
Давайте выведем значение атрибута disabled этого инпута:
let elem = document.querySelector(‘#elem’); console.log(elem.disabled); // выведет true
А теперь давайте отблокируем его:
let elem = document.querySelector(‘#elem’); elem.disabled = false;
Дан инпут и кнопка. По нажатию на кнопку заблокируйте инпут.
Дан инпут и две кнопки. Пусть нажатие на первую кнопку блокирует инпут, а нажатие на вторую — отблокирует.
Дан инпут и кнопка. По нажатию на кнопку узнайте, заблокирован инпут или нет.
Как удалить атрибут «disabled» на неактивном элементе при нажатии на него?
Если нажать на input , то он станет активным, а если мимо, то снова заблокированным.
Отслеживать
ответ дан 2 июн 2018 в 18:34
5,264 1 1 золотой знак 18 18 серебряных знаков 36 36 бронзовых знаков
var inPut = document.querySelector('input'); inPut.setAttribute("readonly", "true"); // inPut.setAttribute("disabled", "true"); );
Отслеживать
ответ дан 2 июн 2018 в 18:39
5,821 3 3 золотых знака 15 15 серебряных знаков 24 24 бронзовых знака
Найс. Без лишних референсов к телу документа.
2 июн 2018 в 18:51
@Bharata Просто у меня в скрипте и так дофига референсов к телу…
2 июн 2018 в 18:57
- javascript
- html
- dom
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как удалить атрибут disabled у button?
Доброго времени суток, подскажите как удалить атрибут disabled в данном случае?
мои попытки не увенчались успехом:
document.getElementsByTagName('button')[0].removeAttribute('disabled'); document.getElementsByTagName("slds-button slds-button_stretch slds-col slds-button_brand").removeAttribute('disabled'); document.getElementsByClassName("slds-button slds-button_stretch slds-col slds-button_brand").removeAttribute('disabled'); document.getElementsByClassName("slds-button slds-button_stretch slds-col slds-button_brand").disabled = false;
- Вопрос задан более двух лет назад
- 512 просмотров
2 комментария
Простой 2 комментария
Fozzy777 @Fozzy777 Автор вопроса
Вот, пытался, не получается(
Используйте console.log( document.querySelector(‘button’) );
И откройте консоль в браузере.
Чтобы понять что то, что выбирается в селекторе, это не тот элемент что вам нужен.
Значит нужно в селектор добавить доп условия:
console.log( document.querySelector('button') ); var disabledbutton = document.querySelector('button[title="Continue"]'); disabledbutton.disabled = false;
Решения вопроса 0
Ответы на вопрос 3
Нелинейный наставник
Вы ищете несколько элементов а не 1
Не работает тк как вы не можете применить к масиву «.disabled»
document.querySelector(‘button’).disabled = false
Ответ написан более двух лет назад
Комментировать
Нравится 2 Комментировать
В целом ответ вам дан, добавлю что если вы не хотите делать перебор массива, то можете воспользоваться jquery:
$("button .slds-button") .prop( "disabled", false );
В большинстве конструкторов/движков он уже встроен.
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать

ThunderCat @ThunderCat Куратор тега JavaScript
Во первых — вы изначально дали неверные данные в вопросе, и несмотря на наличие верного ответа на него не смогли адаптировать его к полному коду.
Во вторых — всегда есть возможность проверить что происходит в вашем коде, например что выберет ваш селектор, магия console.log() в действии.
Ну и в третьих — чтение документации, которым вы пренебрегаете — document.querySelector() выбирает один первый подходящий элемент, которым в вашем примере будет совсем другая кнопка.
Element.removeAttribute()
Вы должны использовать removeAttribute вместо того, чтобы устанавливать значение атрибута в null, используя setAttribute.
Попытка удаления атрибута, которого нет на элементе не вызывает ошибки.
Методы DOM имеют дело с атрибутами элементов:
| Не знают пространства имён, наиболее часто используемые методы | Вариант, знающий пространство имён (Уровень DOM 2) | Уровень DOM 1 методы для работы с Attr узлами напрямую (используется редко) | Уровень DOM 2 знает о методах пространства имён для работы с Attr узлами напрямую (используется редко) |
|---|---|---|---|
| setAttribute (DOM 1) | setAttributeNS (en-US) | setAttributeNode (en-US) | setAttributeNodeNS (en-US) |
| getAttribute (DOM 1) | getAttributeNS (en-US) | getAttributeNode (en-US) | getAttributeNodeNS (en-US) |
| hasAttribute (DOM 2) | hasAttributeNS (en-US) | — | — |
| removeAttribute (DOM 1) | removeAttributeNS (en-US) | removeAttributeNode (en-US) | — |
Спецификация
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 3 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.