Всегда используйтеprop()
метод для включения или отключения элементов при использовании jQuery (см. Ниже, почему).
В вашем случае это будет:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
Пример jsFiddle здесь.
Зачем использовать, prop()
когда вы можете использовать attr()
/, removeAttr()
чтобы сделать это?
В принципе, prop()
должны быть использованы при получении или настройки свойств (таких , как autoplay
, checked
, disabled
и required
среди прочих).
Используя removeAttr()
, вы полностью удаляете сам disabled
атрибут, а prop()
просто устанавливаете базовое логическое значение свойства в false.
Хотя то, что вы хотите сделать, может быть сделано с помощью attr()
/ removeAttr()
, это не значит, что это должно быть сделано (и может вызвать странное / проблемное поведение, как в этом случае).
Следующие выдержки (взятые из документации jQuery для prop () ) объясняют эти моменты более подробно:
«Различия между атрибутами и свойствами могут быть важны в определенных ситуациях. До jQuery 1.6 .attr()
метод иногда учитывал значения свойств при получении некоторых атрибутов, что может вызвать противоречивое поведение. Начиная с jQuery 1.6, .prop()
метод предоставляет способ явного извлечения значения свойств, в то время как
.attr()
извлекает атрибуты. "
«Свойства обычно влияют на динамическое состояние элемента DOM, не изменяя сериализованный атрибут HTML. Примеры включают value
свойство элементов ввода, disabled
свойство входов и кнопок или checked
свойство флажка. .prop()
Метод должен использоваться для установки, disabled
а checked
не .attr()
метод. .val()
метод должен быть использован для получения и установки
value
«.