Utilisez toujours la prop()
méthode pour activer ou désactiver des éléments lorsque vous utilisez jQuery (voir ci-dessous pour savoir pourquoi).
Dans votre cas, ce serait:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
Exemple jsFiddle ici.
Pourquoi utiliser prop()
quand vous pourriez utiliser attr()
/ removeAttr()
pour faire cela?
Au fond, prop()
devrait être utilisé lors de l' obtention ou la mise en propriétés ( par exemple autoplay
, checked
, disabled
et required
entre autres).
En utilisant removeAttr()
, vous supprimez complètement l' disabled
attribut lui-même - tout en prop()
définissant simplement la valeur booléenne sous-jacente de la propriété sur false.
Bien que ce que vous voulez faire puisse être fait en utilisant attr()
/ removeAttr()
, cela ne signifie pas que cela devrait être fait (et peut provoquer un comportement étrange / problématique, comme dans ce cas).
Les extraits suivants (extraits de la documentation jQuery pour prop () ) expliquent ces points plus en détail:
"La différence entre les attributs et les propriétés peut être importante dans des situations spécifiques. Avant jQuery 1.6, la .attr()
méthode prenait parfois en compte les valeurs des propriétés lors de la récupération de certains attributs, ce qui pouvait entraîner un comportement incohérent. À partir de jQuery 1.6, la .prop()
méthode fournit un moyen de récupérer explicitement valeurs de propriété, tout en
.attr()
récupérant les attributs. "
"Les propriétés affectent généralement l'état dynamique d'un élément DOM sans modifier l'attribut HTML sérialisé. Les exemples incluent la value
propriété des éléments d'entrée, la disabled
propriété des entrées et des boutons ou la checked
propriété d'une case à cocher. La .prop()
méthode doit être utilisée pour définir disabled
et checked
au lieu de la .attr()
méthode. La .val()
méthode doit être utilisée pour obtenir et définir
value
. "