Travailler avec des radio boutons 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 La propriété checked
- Prenez Sublime Text et créez un fichier
radio.html
sur votre bureau. - Tapez
!>(form>input[type=radio])+script
+TAB
. - Déclarez une variable
elt
et affectez-la à unquerySelector()
sur l'input
. - Faites un
console.log()
de la propriétéchecked
. - Constatez que la propriété
checked
estfalse
.
- Maintenant, vous allez cocher le bouton radio au niveau du HTML en ajoutant l'attribut
checked
. - Exécutez à nouveau le script, et constatez que la propriété
checked
a maintenant la valeurtrue
.
#3 La propriété value
- Maintenant, ce que l'on va faire, c'est un vrai groupe de bouton radio de manière que cela ait un sens. Pour cela, ajoutez un attribut
name
avec la valeur'choix'
. - Ajouter un attribut
value
avec la valeur0
. - Dupliquez 2 fois la ligne puis supprimez le
checked
sauf au deuxième radio. Arrangez les valeurs devalue
pour avoir0
,1
,2
. - Au niveau JavaScript, changez le
querySelector()
enquerySelectorAll()
pour récupérer tous les input. - Ajoutez un
s
àelt
de manière à avoirelts
comme nom de variable. Le pluriel nous indique que c'est un tableau. Une pratique qui améliore la lisibilité. - Maintenant, on va parcourir le tableau. Faites une boucle
for
surelts
. - Dans la boucle, insérez un
if
pour tester si lechecked
courant esttrue
. Si c'est le cas, c'est celui qui est coché. Par construction, il ne peut y en avoir d'autre, donc on sort de la boucle. - Affichez avec un
console.log()
la valeur de la propriétévalue
du radio qui correspond à l'indice en sortie de la boucle.
- Si vous voulez améliorer un peu, et pouvoir afficher le radio qui est coché à chaque changement, vous pouvez mettre un gestionnaire d'événement. Le mieux est de le mettre sur un parent des trois radio. Ici, vous allez le mettre sur le formulaire. Vous faites un
querySelector()
sur leform
et vous lui mettez unaddEventListener()
sur l'événementchange
. - Enfin dans la fonction du gestionnaire, vous placez votre boucle de parcours des
input
.