Bonjour,
Ce n'est pas très clair. Est-ce que tu souhaites qu'une case se coche toute seule lorsque l'on clique à proximité (sur le libellé qui lui est associé) ou souhaites-tu faire en sorte qu'une seule case parmi
n soit toujours cochée dans ton formulaire ?
- Dans le second cas, ce sont en fait des boutons radio qu'il te faut (c'est à cela qu'ils servent) : https://developer.mozilla.org/fr/doc...ts/input/radio
- Dans le premier, on fait effectivement cela avec des éléments LABEL. Il y a deux manière de les utiliser : de façon implicite ou de façon explicite.
Lorsqu'utilisée de manière implicite, on inclut la case à cocher INPUT dans le corps de la balise LABEL, en même temps que le texte qui l'accompagne. Il est alors évident que les éléments sont liés entre eux et le mécanisme fonctionne.
Lorsqu'utilisée de manière explicite, on sépare les balises INPUT et LABEL, on donne un identifiant à la balise INPUT avec
id="" et on indique au LABEL que c'est à cette case que l'étiquette est associée en passant le même identifiant à l'attribut
for="" de la balise LABEL.
C'est la méthode explicite qui est recommandée et la plus propre parce que, sémantiquement, le corps de la balise LABEL ne contient que le libellé lui-même (le texte de l'étiquette). Il peut être récupéré facilement par analyse du document (spécialement dans le cas du XHTML) ou par le Javascript, qui peut même le remplacer sans risquer d'écraser la case à cocher en même temps. C'est aussi utile, voire nécessaire, lorsque ces éléments prennent place au sein d'un tableau TABLE et que chacun d'eux doit se trouver dans une cellule TD propre.
En revanche, cela oblige à identifier toutes les cases, ce qui peut être fastidieux si elles sont nombreuses et spécialement si le formulaire est auto-généré (soit par le serveur, soit par le Javascript). Cela dit, il est déjà nécessaire de donner un nom
name="" à chaque case. Donc…
Partager