Les cases à cocher permettent généralement de faire un choix multiple parmi plusieurs options possibles.

Principes de fonctionnement

Exemple : cases à cocher

La zone est faite avec l'élément input dont l'attribut type a la valeur checkbox. L'élément input est un élement vide (ie sans balise de fermeture).

La zone doit avoir un attribut name dont la valeur doit être unique parmi toutes les zones composant le formulaire.

Les cases à cocher font le plus souvent parmi d'un groupe de réponses possibles à un choix. Elles sont prévues pour que l'utilisateur puisse choisir plusieurs réponses possibles parmi celles qui lui sont proposées.
On peut aussi utiliser les cases à cocher seules comme dans l'exemple ci-dessous.

Exemple : cases à cocher solitaires

Comme vous le voyez en testant l'exemple, si une case n'est pas cochée, rien n'est envoyé au serveur. Cette particularité rend le traitement des cases à cocher sur le serveur un peu plus complexe que pour les autres zones de formulaire. Je vous conseille donc d'éviter l'utilisation des cases à cocher quand vous le pouvez.

Pour cocher une case par défaut, il suffit qu'elle ait l'attribut checked .
checked est un attribut booléen qui n'a pas de valeur : sa présence ou son absence dans la balise d'ouverture définit la valeur true (présence) ou false (absence). Le piège est d'écrire :
<input type="checkbox" checked="false"...
Comme checked est présent, la valeur sera true et le navigateur ne tiendra pas compte de l'égalité faite dans le code HTML.

L'utilisation d'un élément label attaché à une case à cocher est particulièrement intéressante car la sélection/déselection de la case est facilitée par la surface plus grande du label.

Attribut possible Utilité
checked Etat par défaut (coché ou non). Attribut booléen.
dirname Direction du texte saisi.
disabled Zone désactivée, non transmise au serveur. Aucune interaction n'est possible avec la zone (pas de focus, pas de copie, etc). Attribut booléen.
form id du formulaire associé si la zone n'est pas un élément form ou concerne un autre formulaire que celui dans lequel elle est imbriquée.
name Nom de la zone. Tous les boutons d'un même groupe DOIVENT avoir le même.
readonly Zone en lecture seule, transmise au serveur. La zone peut avoir le focus et le contenu peut être copié. Attribut booléen.
required Zone obligatoire. Attribut booléen.
value Valeur initiale de la zone et valeur transmise au serveur après saisie.

Ajouter à mes amis

Complétez le code HTML pour obtenir le résultat ci-dessous.

Ajouter à mes amis
arborescence de l'exercice

Les images s'appellent du nom du personnage, tout en minuscules, et les espaces éventuels remplacés par un _ (underscore). L'extension du fichier est .png

(Personnages : Gandalf, Frodon, Gimli, Sauron, Saroumane, Gollum, Yoda, Luke Skywalker, Chewbacca, Palpatine, Dark vador, Comte Dooku.)

Quand on clique sur les images ou sur les noms des personnages, la case à cocher correspondante est sélectionnée ou déselectionnée.

Les cases à cocher impaires sont sélectionnées par défaut (Gandalf, Gimli, Saroumane, Yoda, Chewbacca, Dark vador).

Le formulaire utilise la méthode POST pour envoyer les informations saisies à ajouter.php.

Les boutons s'appellent btnReset et btnSubmit.

Code à compléter

Exercice : ajouter à mes amis

Une solution possible

Exercice : ajouter à mes amis