$input.disabled = true;
или
$input.disabled = "disabled";
Какой стандартный способ? И, наоборот, как включить отключенный вход?
javascript
jquery
html-input
disabled-input
О, мой бог
источник
источник
Ответы:
JQuery 1.6+
Для изменения
disabled
свойства вы должны использовать.prop()
функцию.JQuery 1,5 и ниже
.prop()
Функция не существует, но.attr()
делает подобные:Установите отключенный атрибут.
Чтобы снова включить, правильным методом является использование
.removeAttr()
В любой версии jQuery
Вы всегда можете положиться на реальный объект DOM и, вероятно, немного быстрее, чем другие два варианта, если вы имеете дело только с одним элементом:
Преимущество использования методов
.prop()
or.attr()
заключается в том, что вы можете установить свойство для нескольких выбранных элементов.Примечание: в 1.6 есть
.removeProp()
метод, который звучит очень похожеremoveAttr()
, но он НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ для нативных свойств, таких как'disabled'
Excerpt из документации:На самом деле, я сомневаюсь, что есть много законных применений для этого метода, логические реквизиты выполняются таким образом, что вы должны установить их в false вместо того, чтобы «удалять» их как их «атрибутные» аналоги в 1.5
источник
':input'
, а не только'input'
. Последний выбирает только актуальные элементы <input>.input,textarea,select,button
немного лучше использовать, чем:input
-:input
поскольку селектор довольно неэффективен, потому что он должен*
затем выбирать циклы по каждому элементу и фильтровать по тэгам - если вы передаете 4 селектора тэгов напрямую, это НАМНОГО быстрее. Кроме того,:input
он не является стандартным селектором CSS, поэтому возможное увеличениеquerySelectorAll
производительности потеряно.removeProp("disabled")
было причиной проблемы «свойство полностью удалялось и не добавлялось снова», как указывалось @ThomasDavidBaker, в случае некоторых браузеров, таких как Chrome, тогда как на некоторых, как Firefox, оно работало нормально. Мы действительно должны быть осторожны здесь. Всегда используйте.prop("disabled",false)
вместо этогоПросто ради новых соглашений и обеспечения возможности адаптации в будущем (если только с ECMA6 (????) ничего не изменится):
а также
источник
$(document).on('event_name', '#your_id', function() {...})
вместо$('#your_id').on('event_name', function() {...})
. Как описано в документации jQuery .on (), первая использует делегирование и прослушивает всеevent_name
события, которые всплывают,document
и проверяет их на соответствие#your_id
. Последний слушает$('#your_id')
только события, и это лучше масштабируется.Иногда вам нужно отключить / включить элемент формы, такой как input или textarea. Jquery поможет вам легко сделать это, установив для атрибута disabled значение «disabled». Например:
Чтобы включить отключенный элемент, необходимо удалить атрибут «отключенный» из этого элемента или очистить его строку. Например:
см .: http://garmoncheg.blogspot.fr/2011/07/how-to-disableenable-element-with.html
источник
или
источник
Вы можете поместить это где-то глобально в своем коде:
И тогда вы можете написать что-то вроде:
источник
prop
и неattr
сdisabled
собственностью для того , чтобы правильно работать (при условии , JQuery 1.6 или выше).attr
? Я использую приведенный выше код в некоторых проектах и, насколько я помню, он работает нормальноchecked
свойство флажков. Использованиеattr
не даст тот же результат.Если вы просто хотите инвертировать текущее состояние (например, поведение переключателя):
источник
Есть много способов их использования, вы можете включить / отключить любой элемент :
Подход 1
Подход 2
Если вы используете jQuery 1.7 или более позднюю версию, используйте prop () вместо attr ().
Если вы хотите включить какой-либо элемент, вам просто нужно сделать то, что вы сделали, чтобы отключить его. Однако jQuery предоставляет другой способ удалить любой атрибут.
Подход 1
Подход 2
Подход 3
Опять же, если вы используете jQuery 1.7 или более позднюю версию, используйте prop () вместо attr (). Вот это. Вот как вы можете включить или отключить любой элемент, используя jQuery.
источник
Обновление для 2018 года:
Теперь нет необходимости в JQuery , и это было некоторое время , так
document.querySelector
илиdocument.querySelectorAll
(для нескольких элементов) делают почти точно такую же работу , как $, плюс более явными теgetElementById
,getElementsByClassName
,getElementsByTagName
Отключение одного поля класса «input-checkbox»
или несколько элементов
источник
Вы можете использовать метод jQuery prop (), чтобы отключить или включить элемент формы или динамически управлять с помощью jQuery. Метод prop () требует jQuery 1.6 и выше.
Пример:
источник
Отключить:
Включить:
источник
Отключить true для типа ввода:
источник
$("input[name=method]").prop('disabled', true);
это работает для меня
источник
Я использовал ответ @gnarf и добавил его как функцию
Тогда используйте как это
источник
2018, без JQuery (ES6)
Отключить все
input
:Отключить
input
сid="my-input"
Вопрос с JQuery, это просто FYI.
источник
Подход 4 (это расширение ответа дикого кодера )
источник
Используйте как это,
источник
источник
В jQuery Mobile:
Для отключения
Для включения
источник