Immer verwenden Sie die prop()
Methode, um Elemente bei der Verwendung von jQuery zu aktivieren oder zu deaktivieren (siehe unten, warum).
In Ihrem Fall wäre dies der Fall:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
jsFiddle Beispiel hier.
Warum verwenden prop()
wenn Sie Folgendes verwenden könnten attr()
/ removeAttr()
um dies zu tun?
Im Grunde genommen, prop()
sollte beim Abrufen oder Setzen von Eigenschaften (wie zum Beispiel autoplay
, checked
, disabled
y required
u.a.).
Während das, was Sie tun wollen kann technisch mit Hilfe von attr()
/ removeAttr()
heißt das noch lange nicht, dass es auch so ist. sollte durchgeführt werden - und kann, wie in diesem Fall, seltsames/problematisches Verhalten verursachen.
"Der Unterschied zwischen Attributen und Eigenschaften kann in bestimmten bestimmten Situationen wichtig sein. Vor jQuery 1.6 war die .attr()
Methode manchmal bei der Abfrage einiger Attribute die Eigenschaftswerte berücksichtigt, was zu inkonsistentem Verhalten führen konnte. Ab jQuery 1.6 wird die .prop()
Methode bietet eine Möglichkeit, Eigenschaftswerte explizit abzurufen, während .attr()
ruft Attribute ab."
"Eigenschaften beeinflussen im Allgemeinen den dynamischen Zustand eines DOM-Elements, ohne ohne das serialisierte HTML-Attribut zu verändern. Beispiele hierfür sind die value
Eigenschaft von Eingabeelementen, die disabled
Eigenschaft der Eingänge und Tasten, oder die checked
Eigenschaft eines Kontrollkästchens. Die .prop()
Methode sollte verwendet werden, um die disabled
y checked
anstelle der .attr()
Methode. Die Website .val()
Methode sollte für das Abrufen und Setzen von value
." - jQuery-Dokumentation für prop()
Vor JQuery 3.0 (vor 2016)
Der Grund, warum Sie Folgendes verwenden sollten prop
über removeAttr()
ist das removeAttr()
beseitigt vollständig die disabled
Attribut selbst - denn diese Methode würde den entsprechenden Eigenschaftsnamen einfach auf false
:
Vor jQuery 3.0 wurde die Funktion .removeAttr() für ein boolesches Attribut wie wie checked, selected oder readonly würde auch das entsprechende benannte Eigenschaft auf false gesetzt. Dieses Verhalten war erforderlich für alte Versionen des Internet Explorers erforderlich, ist aber bei modernen Browsern nicht korrekt weil das Attribut den Anfangswert darstellt und die Eigenschaft den aktuellen (dynamischen) Wert repräsentiert. - jQuery 3.0 Wesentliche Änderungen
Während prop()
setzt lediglich den zugrunde liegenden booleschen Wert der Eigenschaft auf false.
2 Stimmen
Ich verstehe Ihr Problem nicht. Was wollen Sie wissen?
0 Stimmen
Was ist also die Frage? Ich meine, welches Problem Sie haben.
9 Stimmen
Prop() verwenden - .prop('disabled', false)
1 Stimmen
Wenn Ihr Problem gelöst ist, kreuzen Sie bitte die akzeptierte (echte) Antwort an, damit andere davon erfahren...
0 Stimmen
Das Problem ist, dass es nach dem Klicken nicht deaktiviert wird
0 Stimmen
Ich habe alle Vorschläge ausprobiert, das Problem besteht immer noch
0 Stimmen
Mögliche Duplikate von Wie deaktiviere ich eine Übermittlungsschaltfläche, wenn das Kontrollkästchen nicht markiert ist? weil diese Frage danach fragt, wie man umschalten kann, also sowohl aktivieren als auch deaktivieren