Les formulaires sont un des éléments incontournables des pages Web. En effet, c'est le seul moyen dont on dispose pour que l'utilisateur puisse envoyer des informations non triviales au serveur Web.
Un formulaire est constitué d'une ou plusieurs zones de saisie dans une page HTML.
L'utilisateur saisit des informations dans des zones spécifiques du formulaire.
Ces informations sont transmises par le navigateur à un serveur distant.
Les informations sont traitées par le serveur.
Une réponse peut être retournée à l'utilisateur sous forme d'une autre page HTML, d'un partie de page ou d'un message.
Ce n'est pas HTML qui fera le traitement des informations saisies puisqu'il n'est pas un langage de traitement de données, mais de structuration. Le traitement est fait sur le serveur, par un programme ou un script écrit avec un langage capable de manipuler des données et la plupart du temps d'effectuer des opérations avec une base de données.
Les types de zones de saisie disponibles sont peu nombreux. Ce sont ceux que l'on trouve sur les interfaces graphiques traditionnelles, avec des limitations dûes au langage qui au départ n'était pas conçu pour permettre un échange de données, mais pour fournir un flot uni-directionnel du serveur vers le navigateur client.
Il y a peu d'éléments à connaître pour gérer les formulaires car l'un d'eux (input) est un véritable couteau suisse.
HTML5 apporte beaucoup de nouveautés intéressantes, mais leur implémentation dans les navigateurs est hétérogéne et lacunaire pour le moment.
Les distributeurs de navigateur sont beaucoup plus intéressés par le développement des éléments multimédias (vidéo, audio, animations CSS) que par les éléments d'interface de saisie. Pour le moment Chrome arrive très très nettement en tête devant Firefox et Internet Explorer
En réalité, les nouveaux types de zones sont tous fait en étendant l'élément input qui devient un super couteau suisse. De nouveaux attributs ont été ajouté qui apportent entre autre une validation possible de ce qui est saisi avant l'envoi vers le serveur.
La page Zones de formulaire dans les spécifications techniques vous montre toutes les zones de saisie qu'il est possible d'utiliser. Suivant le navigateur que vous utilisez, certaines zones ajoutées par HTML5 apparaîtront comme des simples champs texte si elles ne sont pas implémentées. N'hésitez pas à changer de navigateur pour voir l'état d'avancement des développements.
L'apparence des zones de saisie n'est pas homogéne car elle dépend :
L'utilisation de règles de style CSS est nécessaire si on veut présenter et structurer les formulaires pour que leur utilisation soit agréable.
Bien que HTML5 apporte des éléments et des attributs permettant de faciliter la saisie de données avec un certain format (nombre et dates), dans la réalité il y a un seul type de données géré par les formulaires : les chaînes de caractères.