Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Les éléments <input> de type button sont affichés comme des boutons poussoirs qui peuvent être programmés afin de contrôler des fonctionnalités de la page via un gestionnaire d'évènement (la plupart du temps pour l'évènement click).
Note : Bien que les éléments <input> de type "button" représentent toujours des éléments HTML valides, l'élément <button>, plus récent, est la meilleure méthode pour créer des boutons hors d'un formulaire. Il est aussi possible d'insérer des éléments HTML dans l'étiquette du bouton, ce qui permet notamment d'avoir des images.
L'attribut value d'un élément <input type="button"> contient une chaîne de caractères utilisée comme étiquette du bouton. La value fournit la description accessible pour le bouton.
Si vous ne définissez pas de value, vous obtenez un bouton vide :
Les éléments <input type="button"> ne possèdent pas de comportement particulier (leurs analogues <input type="submit"> et <input type="reset"> permettent respectivement d'envoyer et de réinitialiser des formulaires). Pour qu'un bouton <input type="button"> puisse avoir un effet, il est nécessaire d'écrire quelques lignes JavaScript.
Nous allons commencer par créer un bouton simple avec un gestionnaire d'évènement click qui démarre notre machine (en fait, il échange la value du bouton et le contenu texte du paragraphe qui suit) :
Dans ce script, on récupère une référence à l'objet HTMLInputElement qui représente l'élément <input> du DOM et on stocke cette référence dans la variable btn. addEventListener() pour ensuite lui rattacher une fonction qui sera utilisée lorsque l'évènement click se produira sur le bouton.
Les raccourcis clavier permettent à un·e utilisateur·ice de déclencher une action grâce à une touche ou grâce à une combinaison de touches du clavier. Pour ajouter un raccourci clavier déclenchant le bouton, on pourra ajouter l'attribut universel accesskey (qu'on peut d'ailleurs utiliser pour les autres éléments <input>).
Dans l'exemple qui suit, on définit s comme raccourci (autrement dit, il faudra appuyer sur la touche s avec une ou plusieurs touches supplémentaires qui dépendent du navigateur et du système d'exploitation, cf. accesskey pour la liste de ces touches).
Note : Un problème de cet exemple est que l'utilisateur·ice ne saura pas quelle touche utiliser comme raccourci ! Sur un site réel, il faudrait fournir cette information d'une manière qui n'interfère pas avec la présentation du site (par exemple en fournissant un lien facilement accessible qui pointe vers une page listant les raccourcis du site).
Pour désactiver un bouton, définissez l'attribut universel disabled sur celui-ci, comme ceci :
Vous pouvez activer et désactiver des boutons à l'exécution en définissant disabled à true ou false. Dans cet exemple, notre bouton commence activé, mais si vous appuyez dessus, il est désactivé avec button.disabled = true. Une fonction setTimeout() est ensuite utilisée pour réactiver le bouton après deux secondes.
Si l'attribut disabled n'est pas fourni, le bouton hérite de l'état disabled de son élément parent. De cette façon, on peut activer ou désactiver des groupes d'éléments en les plaçant dans un conteneur (par exemple un élément <fieldset>) et en indiquant disabled sur le conteneur.
L'exemple ci-dessous montre ce comportement. Il est très similaire à l'exemple précédent, sauf que l'attribut disabled est défini sur le <fieldset> lorsque le premier bouton est pressé — cela désactive les trois boutons jusqu'à la fin du délai de deux secondes.
Note : À la différence des autres navigateurs, Firefox conserve l'état disabled d'un élément <input> même après le rechargement de la page. Pour contourner ce comportement, définissez l'attribut autocomplete de l'élément <input> à off. (Voir Firefox boggue 654072 (angl.) pour plus de détails.)
Les éléments <input type="button"> n'ont pas de contrainte de validation.
Dans l'exemple qui suit, on montre une application de dessin très simple qui utilise un élément <canvas>, une courte feuille de style CSS (masquée) et du code JavaScript. Les deux contrôles situés en haut permettent de choisir la couleur et la taille de la pointe du crayon. Le bouton quant à lui permet de réinitialiser le canevas.
| Valeur | Une chaîne de caractères utilisée comme étiquette du bouton |
| Évènements | click |
| Attributs pris en charge | type et value |
| Attributs IDL | value |
| Interface DOM | HTMLInputElement |
| Méthodes | Aucune |
| Rôle ARIA implicite | button |
| HTML # button-state-(type=button) |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 22 avr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.