Zawsze używaj prop()
metody do włączania lub wyłączania elementów podczas korzystania z jQuery (dlaczego poniżej).
W twoim przypadku byłoby to:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
Przykład jsFiddle tutaj.
prop()
Po co korzystać, kiedy można to zrobić attr()
/ removeAttr()
?
Zasadniczo prop()
należy stosować podczas pobierania lub ustawiania właściwości (takie jak autoplay
, checked
, disabled
i required
między innymi).
Używając tego removeAttr()
, całkowicie usuwasz disabled
sam atrybut - jednocześnie prop()
jedynie ustawiasz wartość logiczną właściwości na false.
Chociaż to, co chcesz zrobić, można wykonać za pomocą attr()
/ removeAttr()
, nie oznacza to, że należy to zrobić (i może powodować dziwne / problematyczne zachowanie, jak w tym przypadku).
Poniższe wyciągi (zaczerpnięte z dokumentacji jQuery dla prop () ) wyjaśniają te punkty bardziej szczegółowo:
„Różnica między atrybutami i właściwościami może być istotna w określonych sytuacjach. Przed jQuery 1.6 .attr()
metoda czasami brała pod uwagę wartości właściwości podczas pobierania niektórych atrybutów, co może powodować niespójne zachowanie. Od jQuery 1.6 .prop()
metoda zapewnia sposób jawnego pobierania wartości właściwości, podczas gdy
.attr()
pobiera atrybuty. ”
„Właściwości zasadniczo wpływają na stan dynamiczny elementu DOM bez zmiany serializowanego atrybutu HTML. Przykłady obejmują value
właściwość elementów wejściowych, disabled
właściwość danych wejściowych i przycisków lub checked
właściwość pola wyboru. .prop()
Metodę należy ustawić, disabled
a checked
zamiast .attr()
metoda. na .val()
metoda powinna być stosowana do pobierania i ustawiania
value
„.