Ne mettez pas de bouton ‘Reset’ dans vos formulaires !

C’est étrange de constater comme les habitudes ont la vie dure… Prenez par exemple les boutons ‘Reset‘ sur les formulaires : Je ne sais pas qui a eu cette idée folle, mais elle est incroyablement tenace.

J’ai déjà eu de nombreuses discussion à ce sujet, mais je profite du dernier édito de Jaokb Nielsen (Top-10 Application-Design Mistakes) pour vous le redire : Ne mettez pas de bouton ‘Reset‘ dans vos formulaires.

Qui a envie de supprimer toutes les données saisies d’un coup ? Qui va s’offusquer de ne pas se voir proposer cette fonction ? Quelle est l’intérêt pour vous ?

Donc une dernière fois : Ne mettez pas de bouton ‘Reset‘ dans vos formulaires.

Et ça sera mon dernier mot ! A vrai dire, je n’ai plus la force d’argumenter sur ce point, je me demande si je ne devrais pas fermer les commentaires pour ce billet…

55 commentaires sur “Ne mettez pas de bouton ‘Reset’ dans vos formulaires !

  1. Je suis d’accord avec le 1er commentaire :)
    La seul conséquence d’ajouter un bouton RESET :
    – RESETER alors qu’on ne le dire pas (après avoir tt encoder, cela donne pas envie de recommencer)
    – Prendre plus de temps a trouver le bouton SUBMIT (qui ne doit jamais s’appeler ENVOI, mais bien, S’INSCRIRE, REPONDRE, VALIDER,… les gens n’en n’on rien a faire que cela envoie des info au serveur.)

  2. Et je remarque a l’instant que pour poster cette réponse j’ai du appuyer sur ENVOYER. Mais j’envoie rien moi! Ça veut dire quoi ‘envoyer’ pour quelqu’un qui ne connait pas GET, POP et autre trucs de barbus ?
    Là Fred, toi le roi de l’interface… tu me déçoit. Mais pas trop t’inquiète ;)

  3. Juste une petite remarque :
    Le bouton RESET n’a pas pour but de supprimer toutes les données du formulaire mais bien de les remettre à leur état initial.
    Bien sur, l’état initial d’un formulaire est 99% du temps vide, donc le raccourci est facile.
    Mais dans de rares -très rares- cas, il est utile lorsque le formulaire est pré-rempli, que l’utilisateur n’a besoin de ne changer qu’une ou deux valeurs, et qu’il se trompe. Dans ce cas, le bouton RESET lui permet de re-remplir le formulaire avec ses valeur d’origine.

    My 2 cents ;)

  4. Désolé, mais le bouton RESET peut-être utile dans certains cas… Où le formulaire est mal foutu.

    Explications:

    Parfois, pour ne pas re-demander de tout re-saisir en cas d’erreur, les devs mémorisent les valeurs dans des cookies.
    Si vous êtes sur un ordinateur public, vous risquez de vous inscrire avec les infos d’une autre personne :o|

    D’un autre coté, le nom RESET, çà fait con, et ce n’est pas explicite… Autant faire un trés discret bouton “effacer les informations saisies”.

    Mais bon, j’dis çà, c’est pour les formulaires mal foutu, et pour taquiner Fred :op .oO(c’est vrai que “Envoyer”, çà fait con aussi)

  5. “Je ne sais pas qui a eu cette idée folle, mais elle est incroyablement tenace.”
    Je me présente, John Reset, donc voilà je suis l’inventeur du bouton RESET qui a été repris et décliné sous plusieurs formes : RESTART, CLEAR, EFFACER, RECOMMENCER…

    “C’est étrange de constater comme les habitudes ont la vie dure…”
    C’est bien la preuve du succès de cette invention que je me suis empressé à faire breveter à l’époque.

    “Donc une dernière fois : Ne mettez pas de bouton ‘Reset‘ dans vos formulaires.”
    Bon. Je veux bien encore faire un effort pour diminuer les royalties, mais de grâce, cessez de vous attaquer à notre racket !

  6. “re-remplir le formulaire avec ses valeur d’origine”, voilà une très bonne idée. A votre avis serait-il possible de mémoriser les données initiale ainsi que les données saisies par l’utilisateur pour pouvoir proposer une fonction ‘Back’ qui serait dédié au formulaire (un peu comme la fonction ‘Undo’ des outils bureautiques).

    /Fred

  7. Tout à fait d’accord avec Fred !
    Le nombre de fois ou j’ai cliqué par erreur sur reset au lieu de valider car j’étais pressé … résultat: Je n’ai pas toujours le courage de re-remplir le formulaire !

    Supprimons les “Reset” !

  8. Bonne réflexion, à partir de maintenant je pense que je suivrais ton conseil, car effectivement, ce dernier ne sert pas à grand chose.

  9. > “re-remplir le formulaire avec ses valeur d’origine”, voilà une très bonne idée

    C’est bien le fonctionnement actuel “de base” du bouton RESET.
    Pour s’en rendre compte, créer une page HTML avec un bête formulaire et un “input” de type text dont l’attribut “value” possède déjà une valeur.
    Ouvrir cette page, le champ est bien pré-rempli avec la valeur (on peut imaginer une adresse de livraison par exemple, pré-remplie depuis une base de données suivant le client authentifié). Si on modifie la valeur et que l’on clique sur “reset”, la valeur d’origine revient bien.

  10. Un lien reset pour un formulaire prend sens lorsque les resultats sont affichés de manière asynchrone (en ajax) sur une page. Ca prend encore plus de sens lorsque le formulaire en question est complexe…

  11. Ce bouton est complètement inutile, et plus d’une fois celui-ci m’a découragé de tout recommencer suite à son utilisation inintentionnelle…

  12. Je pense que le bouton “input type reset” reste assez utile pour pouvoir permettre de faire un formulaire “vintage” sur son site, tendance qui reste à lancer, je pense notamment aux fond texture bois ou pierre et aux ombres portés sur tous les éléments graphiques sans exception.
    Ceci dit, sa disparition pourrait tout à fait être remplacé par une fonction JS qui viderait tous les champs, ce qui rendrait plus technique l’application dudit design “vintage” qui deviendrait du coup beaucoup plus tendance car plus sélectif.

    Donc… je sors.

  13. ““re-remplir le formulaire avec ses valeur d’origine”, voilà une très bonne idée. A votre avis serait-il possible de mémoriser les données initiale ainsi que les données saisies par l’utilisateur pour pouvoir proposer une fonction ‘Back’ qui serait dédié au formulaire (un peu comme la fonction ‘Undo’ des outils bureautiques).”

    La fonction technique du bouton reset est d’affecter à tous les éléments d’un formulaire soit le vide (si aucune valeur définie), soit la valeur de l’argument VALUE=.

    Il est parfaitement possible de sauver de manière asynchrone le formulaire alors même que l’utilisateur le remplit (genre sauvegarde automatique dans gMail). On peut penser à activer une telle sauvegarde asynchrone (via xmlHttpRequest aka Ajax) sur chaque élément “onFocus()” (donc a chaque fois qu’on rentre sa souris sur un élément de formulaire). Dans ce cas, on peut recréer une fonction reset custom en javascript dont le rôle serait de réattribuer les dernières valeurs enregistrées automatiquement (donc celle enregistrée lors de la derniere prise de focus).

    Pour faire simple, ce serait un bouton qui “RESETerait” automatiquement le dernier champ modifié, et uniquement lui.

    ++
    Cédric

  14. Désolé Eric mais pour une fois, je ne suivrai pas ton conseil.

    Je développe une application avec une table de donnée au centre de la page. Dans la colonne de droite un formulaire permet de saisir les données pour filtrer sur un ou plusieurs champs en utilisant des signes du type “*, %, #, _” …

    Sans le bouton RESET, je devrais effacer à chaque fois que je veux faire un nouveau filtre ou annuler le filtre.

    Bon, c’est le seul cas pour lequel j’ai trouvé un intérêt au bouton RESET.

  15. En commençant par désolé Fred, ce serait mieux.

    Merci pour ce blog.

  16. @Fred: tu me fais penser à une fonction méconnue de Yahoo! UI qui permet de gérer un historique des actions en Javascript… On pourrait détourner çà en proposant deux boutons UNDO/REDO à la place de l’affreux RESET ;o) .oO(hard-coding, là)

    Sur mon labs.miaouw.net j’ai cité une idée de “formulaires sérialisés” sans avoir le temps de détailler que l’on découpe le formulaire en étapes qui sont unifiées sur une seule page via l’AJAX. Avec çà, on peut s’abstenir du UNDO/REDO et les RESET deviennent moins dramatiques :o”

Les commentaires sont fermés.