Le lien attribut for
un contrôle à un input
, il y a, pour autant que je sache, aucune limite au nombre d'éléments qui peuvent créer un lien vers un input
, tant que le id
de cette input
(ou textarea
, select
, etc.) est unique.
Par exemple, dans la démo suivante les deux élémentslabel
déclenchent le changement (cocher/décocher) de l'élément case input
:
<label for="foo">Outer label</label>
<div class="foo-bar">
<input type="checkbox" type="checkbox" name="test" id="foo" />
<label for="foo">Inner label</label>
</div>
JS Fiddle demo. Cela peut être utile pour ajouter des messages d'erreur (post-validation, par exemple) qui explicitement lient ou identifient l'élément dans lequel il y a une erreur, sans remplacer/remplacer le label
préexistant pour cet élément. Malheureusement il y a, autant que j'ai encore trouvé, aucune référence ou documentation qui permet explicitement un input
(ou un élément similaire) lié à un seul contrôle; mais l'entrée pour <label>
de » MDN fait état que:
L'ID d'un élément lié à la forme marquable dans le même document que l'élément d'étiquette. Le premier élément de ce type dans le document avec un ID correspondant à la valeur de l'attribut for est le contrôle intitulé pour cet élément d'étiquette.
En tant que sidenote vous pouvez l'éviter en le mettant à l'intérieur. – Knu