$("input").attr("disabled", true);
ab ... ich weiß nicht mehr.
Es ist Dezember 2013 und ich habe wirklich keine Ahnung, was ich dir sagen soll.
Zuerst war es immer .attr()
, dann war es immer .prop()
, also kam ich hierher zurück, aktualisierte die Antwort und machte sie genauer.
Dann, ein Jahr später, änderte jQuery erneut seine Meinung und ich möchte nicht einmal den Überblick behalten.
Kurz gesagt, ab sofort ist dies die beste Antwort: "Sie können beide verwenden ... aber es kommt darauf an."
Sie sollten stattdessen diese Antwort lesen: https://stackoverflow.com/a/5876747/257493
Und ihre Versionshinweise für diese Änderung sind hier enthalten:
Weder .attr () noch .prop () sollten zum Abrufen / Festlegen von Werten verwendet werden. Verwenden Sie stattdessen die Methode .val () (obwohl die Verwendung von .attr ("value", "somevalue") wie vor 1.6 weiterhin funktioniert).
Zusammenfassung der bevorzugten Verwendung
Die .prop () -Methode sollte für boolesche Attribute / Eigenschaften und für Eigenschaften verwendet werden, die in HTML nicht vorhanden sind (z. B. window.location). Alle anderen Attribute (die Sie im HTML-Code sehen können) können und sollten weiterhin mit der Methode .attr () bearbeitet werden.
Oder mit anderen Worten:
".prop = Nicht-Dokument-Zeug"
".attr" = Dokumentmaterial
... ...
Mögen wir alle hier eine Lektion über API-Stabilität lernen ...
Arbeitscode aus meinen Quellen:
HTML WORLD
JS WORLD
quelle
As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. To retrieve and change DOM properties such as the checked, selected, or disabled state of form elements, use the .prop() method
Wenn Sie jQuery verwenden, gibt es verschiedene Möglichkeiten, das Attribut deaktiviert festzulegen.
quelle
$element.eq(0)[0].disabled = true;
? :-PAlle oben genannten sind absolut gültige Lösungen. Wählen Sie diejenige, die Ihren Anforderungen am besten entspricht.
quelle
Sie können das DOM-Element abrufen und die Eigenschaft disabled direkt festlegen.
oder wenn es mehr als eine gibt, können Sie
each()
alle festlegen:quelle
Verwenden Sie einfach die
attr()
Methode von jQueryquelle
.removeAttr('disabled');
Da die Frage lautete, wie dies mit JS gemacht werden soll, stelle ich eine Vanilla JS-Implementierung bereit.
quelle