$("input").attr("disabled", true);
depuis ... je ne sais plus.
Nous sommes en décembre 2013 et je ne sais vraiment pas quoi vous dire.
D'abord c'était toujours .attr()
, puis ça l'était toujours .prop()
, alors je suis revenu ici pour mettre à jour la réponse et la rendre plus précise.
Puis un an plus tard, jQuery a de nouveau changé d'avis et je ne veux même pas en garder une trace.
Bref, pour le moment, c'est la meilleure réponse: "vous pouvez utiliser les deux ... mais cela dépend."
Vous devriez plutôt lire cette réponse: https://stackoverflow.com/a/5876747/257493
Et leurs notes de publication pour ce changement sont incluses ici:
Ni .attr () ni .prop () ne doivent être utilisés pour obtenir / définir une valeur. Utilisez la méthode .val () à la place (bien que l'utilisation de .attr ("value", "somevalue") continue de fonctionner, comme avant 1.6).
Résumé de l'utilisation préférée
La méthode .prop () doit être utilisée pour les attributs / propriétés booléens et pour les propriétés qui n'existent pas en html (comme window.location). Tous les autres attributs (ceux que vous pouvez voir dans le html) peuvent et doivent continuer à être manipulés avec la méthode .attr ().
Ou en d'autres termes:
".prop = trucs non documentaires"
".attr" = trucs de document
... ...
Puissions-nous tous apprendre ici une leçon sur la stabilité des API ...
Code de travail de mes sources:
MONDE HTML
MONDE JS
la source
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
Si vous utilisez jQuery, il existe plusieurs façons de définir l'attribut désactivé.
la source
$element.eq(0)[0].disabled = true;
? :-PTous ces éléments sont des solutions parfaitement valables. Choisissez celui qui correspond le mieux à vos besoins.
la source
Vous pouvez obtenir l'élément DOM et définir directement la propriété disabled.
ou s'il y en a plus d'un, vous pouvez utiliser
each()
pour tous les définir:la source
Utilisez simplement la
attr()
méthode de jQueryla source
.removeAttr('disabled');
Puisque la question demandait comment faire cela avec JS, je propose une implémentation JS vanille.
la source