Manipuler les propriétés readOnly et disabled en JavaScript
#1
Introduction
Pour faire ce tutoriel, des connaissances HTML sur les formulaires et les champs de formulaires sont nécessaires. Si vous avez besoin, vous avez un tutoriel dans la partie HTML-CSS de ce site ici. De plus, si vous avez fait les tutoriels JavaScript sur le DOM, cette partie devrait vous paraître assez facile.
#2
Point commun et différences entre un champ readonly et un champ disabled
- Prenez Sublime Text et créez un fichier
test.htmlsur votre bureau. - Tapez
!>form>input*2+TAB. - Sur le premier
input, ajoutez l'attributvalueet mettez-lui la valeurLe readonlypour que l'on puisse le repérer, puis ajoutez l'attributreadonly. - Sur le deuxième
input, ajoutez l'attributvalueet mettez-lui la valeurLe disabledpour que l'on puisse le repérer, puis ajoutez l'attributdisabled. - Faites un Open in Browser et vérifiez le point commun et les différences qu'il vous est possible de voir.
- Le point commun, c'est que l'internaute ne pourra pas manipuler le champ pour le modifier. Il devra se contenter de l'état dans lequel il se trouve.
- Les différences :
- Il y a une différence au niveau de l'aspect, car le champ placé
disabledest grisé alors que celui placé enreadonlyne l'est pas. - Le champ placé en
readonlyreçoit le focus, alors que celui placé endisabledne le reçoit pas. - Le champ placé en
readonlyest transmis au serveur au moment de la soumission du formulaire, alors que celui placé endisabledne l'est pas. - L'attribut
readonlyne sert à rien sur un select, alors que l'attributdisabledest opérationnel. Vérifiez ici.
- Il y a une différence au niveau de l'aspect, car le champ placé
#3
Comment positionner un champ en readonly ou en disabled en JavaScript
- Sur le premier
input, placez un attributidavec la valeureltr. - Sur le deuxième
input, placez un attributidavec la valeureltd. - Déclarez une variable
eltret faites ungetElementById()avec la valeureltr. - Déclarez une variable
eltdet faites ungetElementById()avec la valeureltd. - Positionnez la propriété
readOnlyàfalse. ATTENTION c'est un O majuscule. - Positionnez la propriété
disabledàfalse. - Constatez que les deux attributs sont désactivés.
Qu'est-ce qui c'est passé ? Dans un premier temps, le HTML a placé les champs en readonly et disabled, mais le JavaScript, qui est chargé après, a annulé cette action en mettant les deux propriétés à la valeur false.





