<FORM> | NN tous IE tous HTML tous
<FORM>...</FORM> | Balise de fin HTML : obligatoire
En dépit de l'importance des formulaires HTML pour la communication entre les visiteurs de pages Web et le serveur, un élément form n'est en essence qu'un conteneur de contrôles. La plupart des contrôles de formulaire sont créés dans le document sous forme d'éléments input. Même si l'interaction de l'utilisateur avec des éléments input n'est pas liée à l'envoi à un serveur (peut-être certains scripts côté client nécessitent-ils une interaction avec l'utilisateur), ces éléments input sont contenus dans un élément form et ils doivent être imbriqués dans un élément form pour l'affichage dans Navigator 4 ou versions antérieures. Un document peut contenir un nombre quelconque d'éléments form, mais un client ne peut transmettre les valeurs des contrôles que pour un seul formulaire à la fois. C'est pourquoi le seul cas valable pour diviser une série de contrôles de formulaire en plusieurs éléments form est celui où les groupes de contrôle peuvent être transmis indépendamment les uns des autres. Si vous devez grouper des contrôles de façon logique ou structurelle tout en conservant un formulaire unique, utilisez l'élément fieldset pour créer les sous-groupes de contrôle nécessaires. Lorsqu'un formulaire est envoyé au serveur, tous les contrôles auxquels sont affectés des attributs name transmettent leurs noms et valeurs (dans des paires nom / valeur) au serveur pour traitement (ou sous forme de pièce jointe ou de message avec le module de messagerie du navigateur). Un programme répondant à la norme CGI (Common Gateway Interface) tournant sur le serveur peut accepter et disséquer les paires nom / valeur en vue d'un traitement ultérieur (par exemple, l'ajout d'un enregistrement à une base de données de serveur ou le lancement d'une recherche par mot clé). Le programme serveur est appelé via son adresse URL, affectée à l'attribut action. Dans les navigateurs, le processus d'envoi consiste en quelques étapes bien définies. Au début du processus, le navigateur assemble des données de formulaire composées des paires nom / valeur des contrôles de formulaire. Le nom est la valeur affectée à l'attribut name. La valeur d'un contrôle dépend de son type. Par exemple, la valeur d'un élément input est le contenu affiché dans la zone de texte lors de l'envoi; pour une case d'option à l'intérieur d'un groupe de cases d'option (dont tous les attributs name ont la même valeur), la valeur affectée à l'attribut value de la case d'option activée est insérée dans la paire nom / valeur du groupe de cases d'option. Les recommandations W3C préfèrent que les contrôles de formulaire utilisent leurs attributs id dans les paires nom / valeur. Cependant, à partir de la version 6 des navigateurs, seul l'attribut name est reconnu en tant qu'identifiant de la paire nom / valeur envoyée. La seconde étape de l'envoi consiste à coder le texte de chaque paire nom / valeur. Un symbole + remplace chaque caractère d'espacement. Les caractères réservés (définis par la RFC 1738) sont transformés en caractères d'échappement, et tous les autres caractères non-alphanumériques sont convertis en hexadécimal (sous la forme %HH, où HH est le code hexadécimal de la valeur ASCII du caractère). Les composants « nom » et « valeur » de chaque paire de nom / valeur sont séparés par le signe =, et les paires nom / valeur par une esperluette (&). À la dernière étape, le paramétrage de l'attribut method détermine la manière dont l'ensemble des données du formulaire, transformées en caractères d'échappement, sont transmises au serveur. Si la valeur de l'attribut method est get, les données du formulaire sont ajoutées à l'adresse URL indiquée dans l'attribut action, séparées par le signe ? . Si la valeur de l'attribut method est post et si l'attribut enctype possède sa valeur par défaut, les données sont transmises sous la forme d'une sorte de message (non e-mail) au serveur. La longueur des données envoyées par le biais de la méthode GET est limitée (nombre de caractères), tandis que la méthode POST ne limite en aucune façon la longueur des données et élimine les affichages en écho dans la zone Adresse du navigateur. Le comportement par défaut de la touche Entrée dans les formulaires est devenu une norme communément admise. Lorsqu'un formulaire consiste en un simple élément de texte input, l'action de la touche Entrée (ou Retour) envoie automatiquement le formulaire (comme si l'utilisateur avait cliqué sur le bouton submit). Si le formulaire se compose de plusieurs éléments input, la touche Entrée (ou Retour) ne l'envoie pas automatiquement(sauf dans IE pour Mac). Les navigateurs modernes permettent d'annuler l'envoi du formulaire à l'aide de scripts effectuant un contrôle de validation ou d'autres fonctions déclenchées par le gestionnaire d'événements onsubmit. Cet événement se produit avant l'envoi du formulaire. Si l'évaluation du gestionnaire d'événements renvoie la valeur return false, le formulaire n'est pas envoyé et l'utilisateur peut continuer à en modifier les éléments.
Exemple
    <FORM name="orders" method="POST" action="http://www.giantco.com/cgi-bin/order">
    ...
    </FORM>
Rflrence de modle d'objet
    [window.]document.forms[i]
    [window.]document.forms[formName]
    [window.]document.formName
    [window.]document.getElementById(elementID)
Attributs spécifiques à l'élément
accept | accept-charset | acceptcharset | action | autocomplete
enctype | method | name | target |
Attributs du gestionnaire d'événements spécifiques à l'élément
Gestionnaire | NN | IE | HTML
onreset | 3 | 4 | 4
onsubmit | 2 | 3 | 4

accept | NN s.o. IE s.o. HTML 4
accept="MIMETypeList" | Facultatif
Destiné à être utilisé avec des éléments input de type file, l'attribut accept permet d'indiquer un ou plusieurs types MIME pour les fichiers qui peuvent être transmis au serveur lorsque le formulaire est envoyé. L'implémentation prévue pour cet attribut consistait à filtrer les types de fichiers apparaissant dans des zones de dialogue utilisées pour choisir un fichier à télécharger. En un sens, cet attribut assure une validation sur le client d'un type de fichier, afin que les fichiers non conformes au type MIME autorisé ne soient même pas transmis au serveur.
Exemple
    <FORM accept="text/html, image/gif" ...>...</FORM>
Valeur
Constante de type MIME (type de contenu) non sensible à la casse. Il est possible d'indiquer plusieurs valeurs, qui sont alors séparées par des virgules. Un catalogue des types de MIME enregistrés est disponible à l'adresse suivante: ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/.
Par défaut
Aucune.

accept-charset, acceptcharset | NN 6 IE 5 HTML 4
accept-charset="MIMETypeList" | Facultatif
Informations, à l'intention des serveurs capables de les interpréter, concernant les jeux de caractères à recevoir d'un formulaire client. La version coupée provient de la spécification HTML 4, mais IE 5 et versions ultérieures pour Windows et Netscape 6 implémentent le nom d'attribut sans le trait d'union.
Exemple
    <FORM accept-charset="it, es" ...>...</FORM>
Valeur
Alias insensible à la casse pris dans le registre du jeu de caractères (ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets). Il est possible de délimiter des jeux de caractères multiples par des virgules. La valeur réservée, unknown, est censée représenter le jeu de caractères utilisé par le serveur pour générer le formulaire destiné au client.
Par défaut
inconnu

action | NN tous IE tous HTML tous
action="URL" | Facultatif
Adresse URL de destination lors de l'envoi du formulaire. Lors de l'envoi du formulaire à un serveur pour traitement, l'adresse URL peut être un programme CGI ou une page HTML comportant des scripts côté serveur (ces scripts s'exécutent sur le serveur avant le téléchargement de la page HTML vers le client). Suite à l'envoi, le serveur renvoie une page HTML à afficher sur le client. Si l'affichage renvoyé doit apparaître dans un autre cadre ou une autre fenêtre, il convient de paramétrer l'attribut target en conséquence. Vous pouvez également utiliser une adresse URL mailto: comme valeur de l'attribut action. Navigator convertit la paire nom / valeur du formulaire en un document à joindre à un message électronique (ou à utiliser comme corps de message en paramétrant l'attribut enctype sur "text/plain", tandis que l'attribut enctype précède l'attribut action). Par souci de confidentialité, les utilisateurs sont informés de cette transmission par courrier électronique et peuvent annuler le message. Les fonctions d'envoi de formulaire sont normalement désactivées dans Netscape 6 et 7. L'implémentation pour les divers navigateurs donne des résultats inégaux et vous risquez de ne pas recevoir les formulaires envoyés par de nombreux utilisateurs. Si votre expérience est insuffisante pour vous permettre le traitement CGI des formulaires, recherchez des services FormMail tiers permettant de vous transmettre les formulaires par e-mail. Si vous omettez l'attribut action et envoyez le formulaire, la page courante se recharge en rétablissant les valeurs par défaut de tous les éléments du formulaire.
Exemple
    <FORM method="POST" action="http://www.giantco.com/orders/order.html">
Valeur
Une adresse URL complète ou relative.
Par défaut
Aucune.
Rfprence de modle d'objet
    [window.]document.forms[i].action
    [window.]document.forms[formName].action
    [window.]document.formName.action
    [window.]document.getElementById(elementID).action

autocomplete | NN s.o. IE 5 HTML s.o.
autocomplete="featureSwitch" | Facultatif
Si un utilisateur IE a activf des préférences pour le remplissage automatique des formulaires, l'attribut autocomplete régit cette fonction pour l'ensemble du formulaire. Vous devez également spécifier les attributs vcard-name pour les éléments input de type texte et mot de passe afin que le navigateur puisse pré-remplir ou faciliter la saisie d'un champ spécifique correspondant à l'une des préférences entrées.
Exemple
    <FORM method="POST" action="register.pl" autocomplete="on">
Valeur
Constantes: on | off.
Par défaut
off
Rfarence de modle d'objet
    [window.]document.forms[i].autoComplete
    [window.]document.forms[formName].autoComplete
    [window.]document.formName.autoComplete
    [window.]document.getElementById(elementID).autoComplete

enctype | NN tous IE tous HTML tous
enctype="MIMEType" | Facultatif
Dcfinit un type MIME pour les données envoyées au serveur avec le formulaire. Pour les envois de formulaire courants, avec l'attribut method ayant la valeur POST, la valeur par défaut est le type de contenu adéquat. Si vous incluez un élément input de type fichier, indiquez "multipart/form-data" comme valeur de l'attribut enctype.
Exemple
    <FORM method="POST" enctype="text/plain" action="mailto:orders@giantco.com">
    ...
    </FORM>
Valeur
Constante de type MIME (type de contenu). Il est possible d'indiquer plusieurs valeurs, qui sont alors séparées par des virgules.
Par défaut
application/x-www-form-urlencoded
Rfmrence de modle d'objet
    [window.]document.forms[i].encoding
    [window.]document.forms[formName].encoding
    [window.]document.formName.encoding
    [window.]document.getElementById(elementID).encoding

title | NN 6 IE 3 HTML 3.2
title="advisoryText" | Facultatif
Description de l' lément. Pour les éléments HTML qui produisent du contenu visible sur la page, IE 4 et versions ultérieures ainsi que Netscape 6 affichent le contenu de l'attribut title sous forme d'info-bulle lorsque le curseur reste un moment sur l'élément concerné. Par exemple, l'élément de colonne col n'affiche pas le contenu, donc son attribut title fournit simplement des informations. Pour générer des info-bulles dans les tableaux, affectez des attributs title aux éléments tels que table, tr, th ou td. Les propriétés de police et de couleur sont régies par le navigateur et ne peuvent pas être modifiées par script. Dans IE pour Windows, l'info-bulle est le petit rectangle jaune clair standard; dans IE pour Macintosh, l'info-bulle s'affiche comme une bulle de BD, à la manière du système d'aide de MacOS. Dans Netscape 6, les info-bulles s'affichent toujours sous la forme du même petit rectangle quelle que soit la version du système d'exploitation. Si aucun attribut n'est spécifié, l'info-bulle ne s'affiche pas. Vous pouvez affecter à cet attribut le texte descriptif de votre choix. Etant donné que tout le monde ne le verra pas, n'y placez pas d'informations essentielles. Peut-être les navigateurs conçus pour satisfaire les critères d'accessibilité Web utiliseront-ils les informations de cet attribut pour lire les informations au sujet d'un lien ou d'éléments autres que du texte à des utilisateurs malvoyants. Donc, ne négligez pas cette aide potentiellement utile pour décrire l'objectif d'un élément sur une page. Bien que les indications de compatibilité pour cet attribut le fassent remonter à l'époque de Microsoft Internet Explorer 3 et HTML 3.2, il est nouvellement affecté à de nombreux éléments à partir de Microsoft Internet Explorer 4 et de HTML 4.0.
Exemple
    <span title="United States of America">U.S.A.</span>
Valeur
Toute chaîne de caractères. Cette chaîne doit figurer entre guillemets (simples ou doubles, mais identiques).
Par défaut
Aucune.
Rfirence de modle d'objet
    [window.]document.getElementById(elementID).title

method | NN tous IE tous HTML tous
method="GET" | "POST" | Facultatif
Les formulaires peuvent otre envoyés selon deux méthodes HTTP: GET et POST. Ces méthodes déterminent si les données de l'élément formulaire sont transmises au serveur à la suite de l'adresse URL indiquée par l'attribut action (GET) ou dans le corps d'un message de transaction (POST). Dans la pratique, lorsque les attributs action et method ne sont pas définis dans un élément form, le formulaire exécute le rechargement inconditionnel du même document, en rétablissant les valeurs par défaut des contrôles de formulaire.
Exemple
    <FORM method="POST" action="http://www@giantco.com/orders/order.html">
    ...
    </FORM>
Valeur
Constantes de GET ou POST. Les navigateurs acceptent les entrées en majuscules ou en minuscules.
Par défaut
GET
Rf/rence de modle d'objet
    [window.]document.forms[i].method
    [window.]document.forms[formName].method
    [window.]document.formName.method
    [window.]document.getElementById(elementID).method

name | NN 2 IE 3 HTML s.o.
name="elementIdentifier" | Facultatif
Affecte un identifiant 0 l'élément form. Cette valeur est particulièrement utile pour créer dans des modèles anciens de navigateur des scripts faisant référence au formulaire ou à ses contrôles imbriqués. Les versions plus récentes des navigateurs prennent en charge l'attribut id préféré dans ce cadre, mais l'attribut name est toujours nécessaire pour l'envoi des formulaires.
Exemple
    <FORM name="orders" id="orders" method="POST"
    action="http://www.giantco.com/cgi-bin/order">
    ...
    </FORM>
Valeur
Identifiant sensible à la casse.
Par défaut
Aucune.
Rf
    [window.]document.forms[i].name
    [window.]document.forms[formName].name
    [window.]document.formName.name
    [window.]document.getElementById(elementID).name

target | NN tous IE tous HTML tous
target="windowOrFrameName" | Facultatif
Si le document HTML renvoyé par le serveur après traitement du formulaire doit être chargé dans une fenêtre ou un cadre autres que la fenêtre ou le cadre courant, vous pouvez préciser l'endroit où il doit s'afficher en associant un nom de fenêtre ou de cadre à l'attribut target. Il faut impérativement affecter un nom aux cadres et aux fenêtres cibles afin de les identifier. Pour affecter un nom à un nouveau cadre, utilisez l'attribut name de l'élément frame; pour affecter un nom à une nouvelle fenêtre, utilisez le second paramètre de la méthode de script window.open( ). Si vous omettez cet attribut, le document renvoyé s'affiche à la place du document contenant l'élément form. Un identifiant qui n'est pas associé à un cadre ou à une fenêtre existante ouvre une nouvelle fenêtre pour recevoir le document renvoyé. Si le formulaire se trouve dans une sous-fenêtre et que vous voulez définir la fenêtre principale comme cible, vous devez d'abord utiliser un script pour affecter un identifiant à la propriété name de la fenêtre principale. Utilisez ce nom comme valeur de l'attribut target du formulaire. Les DTD strictes pour HTML 4 et XHTML ne prennent en charge l'attribut target d'aucun élément, puisque les cadres et les fenêtres n'appartiennent pas au balisage pur du document. En fait, le jeu de cadres ne sera pas valider dans un environnement strict, d'où l'action des DTD de jeu de cadres séparé pour HTML 4 et XHTML. Si vos documents doivent faire l'objet d'une validation avec ces DTD strictes et que vous souhaitez prendre en charge les cibles, utilisez les scripts pour définir les propriétés target des liens, des cartes images et des formulaires une fois la page chargée. Un élément form ne peut avoir qu'un seul document renvoyé et une seule cible. Pour que l'envoi d'un formulaire modifie le contenu de plusieurs cadres, vous pouvez inclure dans le document renvoyé un script à partir duquel le gestionnaire d'événements onload charge ou écrit un document dans un autre cadre (affectez l'adresse URL souhaitée à la propriété location.href de chaque cadre).
Exemple
    <FORM method="POST" action="http://www.giantco.com/cgi-bin/order" target="new">
    ...
    </FORM>
Valeur
Identifiant sensible à la casse lorsque le nom du cadre ou de la fenêtre a été défini via l'attribut name de l'élément cible. Quatre noms de cible réservés servent de constantes:
Par défaut
_self
Rfprence de modle d'objet
    [window.]document.forms[i].target
    [window.]document.forms[formName].target
    [window.]document.formName.target
    [window.]document.getElementById(elementID).target