Завжди використовуйте 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
«.