1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
---
title: 'Attribut HTML : multiple'
slug: Web/HTML/Attributes/multiple
tags:
- Attribute
- Attributes
- Constraint validation
- HTML
translation_of: Web/HTML/Attributes/multiple
---
<p>{{HTMLSidebar}}</p>
<p class="summary">L'attribut booléen <strong><code>multiple</code></strong>, s'il est défini, signifie que le contrôle de formulaire accepte une ou plusieurs valeurs. Valable pour les types de saisie <a href="/fr/docs/Web/HTML/Element/Input/email"><code>email</code></a> et <a href="/fr/docs/Web/HTML/Element/Input/file"><code>file</code></a> et l'élément <a href="/fr/docs/Web/HTML/Element/select"><code><select></code></a>, la manière dont l'utilisateur opte pour plusieurs valeurs dépend du contrôle de formulaire.</p>
<p>Selon le type, le contrôle de formulaire peut avoir une apparence différente si l'attribut <code>multiple</code> est défini. Pour le type de saisie de fichier, la messagerie native fournie par le navigateur diffère. Dans Firefox, l'entrée de fichier indique « Aucun fichier sélectionné » lorsque l'attribut est présent et « Aucun fichier sélectionné » dans le cas contraire, lorsqu'aucun fichier n'est sélectionné. La plupart des navigateurs affichent une zone de liste déroulante pour un contrôle <a href="/fr/docs/Web/HTML/Element/select"><code><select></code></a> avec l'attribut <code>multiple</code> défini contre une liste déroulante à une ligne lorsque l'attribut est omis. L'entrée <a href="/fr/docs/Web/HTML/Element/Input/email"><code>email</code></a> s'affiche de la même manière, mais correspondra à la pseudo-classe <a href="/fr/docs/Web/CSS/:invalid"><code>:invalid</code></a> si plus d'une adresse électronique séparée par des virgules est incluse en l'absence de l'attribut.</p>
<p>Lorsque <code>multiple</code> est défini sur le type de saisie <a href="/fr/docs/Web/HTML/Element/Input/email"><code>email</code></a>, l'utilisateur peut inclure zéro (si ce n'est pas également <a href="/fr/docs/Web/HTML/Attributes/required"><code>required</code></a>), une ou plusieurs adresses électroniques séparées par des virgules.</p>
<pre class="brush: html"><input type="email" multiple name="emails" id="emails"></pre>
<p>Si et seulement si l'attribut <code>multiple</code> est spécifié, la valeur peut être une liste d'adresses électroniques correctement formées et séparées par des virgules. Tout espace blanc de queue et de tête est supprimé de chaque adresse de la liste.</p>
<p>Lorsque <code>multiple</code> est défini sur le type d'entrée <a href="/fr/docs/Web/HTML/Element/Input/file"><code>file</code></a>, l'utilisateur peut sélectionner un ou plusieurs fichiers. L'utilisateur peut choisir plusieurs fichiers dans le sélecteur de fichiers de n'importe quelle manière que la plateforme qu'il a choisie permet (par exemple, en maintenant la touche <kbd>Maj</kbd> ou <kbd>Ctrl</kbd> enfoncée, puis en cliquant).</p>
<pre class="brush: html"><input type="file" multiple name="uploads" id="uploads"></pre>
<p>Lorsque l'attribut est omis, l'utilisateur ne peut sélectionner qu'un seul fichier par <code><input></code>.</p>
<p>L'attribut <code>multiple</code> de l'élément <a href="/fr/docs/Web/HTML/Element/select"><code><select></code></a> représente un contrôle permettant de sélectionner zéro ou plusieurs options dans la liste d'options. Sinon, l'élément <a href="/fr/docs/Web/HTML/Element/select"><code><select></code></a> représente un contrôle permettant de sélectionner une seule <a href="/fr/docs/Web/HTML/Element/Option"><code><option></code></a> dans la liste d'options.</p>
<pre class="brush: html"><select multiple name="dwarfs" id="dwarfs">
<option>Grincheux</option>
<option>Joyeux</option>
<option>Dormeur</option>
<option>Timide</option>
<option>Atchoum</option>
<option>Simplet</option>
<option>Doc</option>
</select></pre>
<p>Lorsque <code>multiple</code> est spécifié, la plupart des navigateurs affichent une boîte de liste défilante au lieu d'une liste déroulante à ligne unique.</p>
<h2 id="examples">Exemples</h2>
<h3 id="email_input">Saisie d'adresses électroniques</h3>
<pre class="brush: html"><label for="emails">A qui voulez-vous adresser un courriel ?</label>
<input type="email" multiple name="emails" id="emails" list="dwarfemails" required size="64">
<datalist id="dwarfemails">
<option value="grincheux@menuisiers.fr">Grincheux</option>
<option value="joyeux@menuisiers.fr">Joyeux</option>
<option value="dormeur@menuisiers.fr">Dormeur</option>
<option value="timide@menuisiers.fr">Timide</option>
<option value="atchoum@menuisiers.fr">Atchoum</option>
<option value="simplet@menuisiers.fr">Simplet</option>
<option value="doc@menuisiers.fr">Doc</option>
</datalist></pre>
<div class="hidden">
<pre class="brush: css">input:invalid {border: red solid 3px;}</pre>
</div>
<p>Si et seulement si l'attribut <code>multiple</code> est spécifié, la valeur peut être une liste d'adresses électroniques correctement formées et séparées par des virgules. Tout espace blanc de queue et de tête est supprimé de chaque adresse de la liste. Si l'attribut <a href="/fr/docs/Web/HTML/Attributs/required"><code>required</code></a> est présent, au moins une adresse électronique est requise.</p>
<p>Certains navigateurs prennent en charge l'apparition de la <a href="/fr/docs/Web/HTML/Attributes/list">liste</a> d'options de la <a href="/fr/docs/Web/HTML/Element/datalist"><code><datalist></code></a> pour les adresses électroniques ultérieures lorsque <code>multiple</code> est présent. D'autres ne le font pas.</p>
<div>{{EmbedLiveSample("email_input", '', 80)}}</div>
<h3 id="file_input">Saisie de fichiers</h3>
<p>Lorsque <code>multiple</code> est défini sur le type de saisie <a href="/fr/docs/Web/HTML/Element/Input/file"><code>file</code></a>, l'utilisateur peut sélectionner un ou plusieurs fichiers :</p>
<pre class="brush: html"><form method="post" enctype="multipart/form-data">
<p>
<label for="uploads">
Choisissez les images que vous voulez télécharger :
</label>
<input type="file" id="uploads" name="uploads" accept=".jpg, .jpeg, .png, .svg, .gif" multiple>
</p>
<p>
<label for="text">Choisissez un fichier texte à télécharger :</label>
<input type="file" id="text" name="text" accept=".txt">
</p>
<p>
<input type="submit" value="Soumettre">
</p>
</form></pre>
<div>{{EmbedLiveSample("file_input", '', 160)}}</div>
<p>Notez la différence d'aspect entre l'exemple avec <code>multiple</code> défini et l'autre entrée <code>file</code> sans.</p>
<p>Lorsque le formulaire est soumis, si nous avions utilisé <a href="/fr/docs/Web/HTML/Element/Form"><code>method="get"</code></a> le nom de chaque fichier sélectionné aurait été ajouté aux paramètres de l'URL sous la forme <code>?uploads=img1.jpg&uploads=img2.svg</code>. Cependant, étant donné que nous sommes en train d'additionner les données du formulaire <a href="/fr/docs/Web/API/XMLHttpRequest/multipart">multipart</a>, nous devons utiliser POST. Voir l'élément <a href="/fr/docs/Web/HTML/Element/Form"><code><form></code></a> et <a href="/fr/docs/Learn/Forms/Sending_and_retrieving_form_data#the_method_attribute">l'envoi de données de formulaire</a> pour plus d'informations.</p>
<h3 id="select">Saisir plusieurs options</h3>
<p>L'attribut <code>multiple</code> de l'élément <a href="/fr/docs/Web/HTML/Element/select"><code><select></code></a> représente un contrôle permettant de sélectionner zéro ou plusieurs options dans la liste d'options. Sinon, l'élément <a href="/fr/docs/Web/HTML/Element/select"><code><select></code></a> représente un contrôle permettant de sélectionner une seule <a href="/fr/docs/Web/HTML/Element/Option"><code><option></code></a> dans la liste des options. L'apparence du contrôle varie généralement en fonction de la présence de l'attribut multiple, la plupart des navigateurs affichant une liste déroulante à défilement au lieu d'une liste déroulante à ligne unique lorsque l'attribut est présent.</p>
<pre class="brush: html"><form method="get" action="#">
<p>
<label for="dwarfs">Sélectionnez les menuisiers que vous aimez :</label>
<select multiple name="dwarfs" id="dwarfs">
<option>grincheux@menuisiers.fr</option>
<option>joyeux@menuisiers.fr</option>
<option>dormeur@menuisiers.fr</option>
<option>timide@menuisiers.fr</option>
<option>atchoum@menuisiers.fr</option>
<option>simplet@menuisiers.fr</option>
<option>doc@menuisiers.fr</option>
</select>
</p>
<p>
<label for="favoriteOnly">Sélectionnez votre préféré :</label>
<select name="favoriteOnly" id="favoriteOnly">
<option>grincheux@menuisiers.fr</option>
<option>joyeux@menuisiers.fr</option>
<option>dormeur@menuisiers.fr</option>
<option>timide@menuisiers.fr</option>
<option>atchoum@menuisiers.fr</option>
<option>simplet@menuisiers.fr</option>
<option>doc@menuisiers.fr</option>
</select>
</p>
<p>
<input type="submit" value="Soumettre">
</p>
</form></pre>
<div>{{EmbedLiveSample("select", '', 220)}}</div>
<p>Notez la différence d'apparence entre les deux contrôles de formulaire.</p>
<pre class="brush: css">/* Décommentez ce CSS pour que le sélecteur multiple ait la même hauteur que le simple. */
/*
select[multiple] {
height: 1.5em;
vertical-align: top;
}
select[multiple]:focus,
select[multiple]:active {
height: auto;
}
*/</pre>
<p>Il existe plusieurs façons de sélectionner plusieurs options dans un élément <code><select></code> avec un attribut <code>multiple</code>. Selon le système d'exploitation, les utilisateurs de souris peuvent maintenir les touches <kbd>Ctrl</kbd>, <kbd>Commande</kbd> ou <kbd>Maj</kbd> enfoncées, puis cliquer sur plusieurs options pour les sélectionner/désélectionner. Les utilisateurs du clavier peuvent sélectionner plusieurs éléments contigus en ciblant l'élément <code><select></code>, en sélectionnant un élément en haut ou en bas de la plage qu'ils souhaitent sélectionner à l'aide des touches de curseur <kbd>Haut</kbd> et <kbd>Bas</kbd> pour monter et descendre dans les options. La sélection de non-contigus n'est pas aussi bien supportée : les éléments devraient pouvoir être sélectionnés et désélectionnés en appuyant sur <kbd>Espace</kbd> , mais le support varie selon les navigateurs.</p>
<h2 id="accessibility_concerns">Accessibilité</h2>
<p>Fournissez des instructions pour aider les utilisateurs à comprendre comment remplir le formulaire et utiliser les contrôles individuels du formulaire. Indiquez toute entrée obligatoire et facultative, les formats de données et toute autre information pertinente. Lorsque vous utilisez l'attribut <code>multiple</code>, informez l'utilisateur que plusieurs valeurs sont autorisées et donnez des indications sur la manière de fournir plusieurs valeurs, par exemple « séparez les adresses électroniques par une virgule ».</p>
<p>Définir <code><a href="/fr/docs/Web/HTML/Attributes/size">size</a>="1"</code> sur une sélection multiple peut la faire apparaître comme une sélection unique dans certains navigateurs, mais elle ne s'étend alors pas au focus, ce qui nuit à la convivialité. Ne faites pas cela. Si vous modifiez l'apparence d'une sélection, et même si vous ne le faites pas, veillez à informer l'utilisateur que plusieurs options peuvent être sélectionnées par une autre méthode.</p>
<h2 id="specifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">Statut</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('HTML WHATWG', 'input.html#attr-input-multiple', 'l\'attribut multiple')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'input.html#attr-input-multiple', 'l\'attribut multiple')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
</tr>
</tbody>
</table>
<h2 id="see_also">Voir aussi</h2>
<ul>
<li>L'élément <a href="/fr/docs/Web/HTML/Element/Input"><code><input></code></a></li>
<li>L'élément <a href="/fr/docs/Web/HTML/Element/select"><code><select></code></a></li>
<li><a href="/fr/docs/Web/HTML/Element/Input/email#allowing_multiple_e-mail_addresses">Autoriser les adresses électroniques multiples</a></li>
</ul>
|