Verwenden Sie immer die prop()
Methode, um Elemente zu aktivieren oder zu deaktivieren, wenn Sie jQuery verwenden (siehe unten, warum).
In Ihrem Fall wäre es:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
jsFiddle Beispiel hier.
Warum Gebrauch , prop()
wenn Sie könnten nutzen attr()
/ removeAttr()
dies zu tun?
Grundsätzlich prop()
soll verwendet werden , wenn Abrufen oder Festlegen Eigenschaften (wie autoplay
, checked
, disabled
und required
unter anderem).
Durch die Verwendung von removeAttr()
entfernen Sie das disabled
Attribut selbst vollständig, während Sie prop()
lediglich den zugrunde liegenden booleschen Wert der Eigenschaft auf false setzen.
Während das, was Sie tun mögen , kann getan werden , mit attr()
/ removeAttr()
, bedeutet es nicht , es sollte (und kann seltsames / problematisches Verhalten führen, wie in diesem Fall) erfolgen.
Die folgenden Auszüge (aus der jQuery-Dokumentation für prop () ) erläutern diese Punkte ausführlicher:
"Der Unterschied zwischen Attributen und Eigenschaften kann in bestimmten Situationen wichtig sein. Vor jQuery 1.6 .attr()
berücksichtigte die Methode beim Abrufen einiger Attribute manchmal Eigenschaftswerte, was zu inkonsistentem Verhalten führen kann. Ab jQuery 1.6 bietet die .prop()
Methode eine Möglichkeit zum expliziten Abrufen Eigenschaftswerte, während
.attr()
Attribute abgerufen werden. "
"Eigenschaften wirken sich im Allgemeinen auf den dynamischen Status eines DOM-Elements aus, ohne das serialisierte HTML-Attribut zu ändern. Beispiele sind die value
Eigenschaft von Eingabeelementen, die disabled
Eigenschaft von Eingaben und Schaltflächen oder die checked
Eigenschaft eines Kontrollkästchens. Die .prop()
Methode sollte zum Festlegen disabled
und checked
anstelle von verwendet werden die .attr()
Methode. Die .val()
Methode sollte zum Abrufen und Einstellen verwendet werden
value
. "