PRATIQUE CLIENTS WEB 
Annuler la complétion de donnée d'un formulaire
 
"Comment faire pour qu'un champ de formulaire ne se souvienne pas des informations qu'on y entre (par exemple un champ de carte bleue) ?" (07/12/2004)
  Forum

Réagissez dans les forums de JDN Développeurs

L'un des avantages de retenir les informations d'un utilisateur pour les champs d'un formulaire peut se retourner contre ce dernier s'il utilise ce formulaire sur un ordinateur public. On pourra en toute sécurité (selon le navigateur…) faire des achats en ligne voire consulter son compte en banque, mais il est fort possible que les 16 numéros de la carte bleue utilisée soient conservées dans un formulaire… et donc directement accessible à l'utilisateur suivant.

Côté client, certains navigateurs permettent d'annuler ce comportement des formulaires, mais ce n'est pas toujours le cas.
Côté application, il est possible d'indiquer qu'un champ précis ne doit pas être retenu, ce de deux manières.

La première n'est pas valide, mais a le mérite d'être simple à mettre en place : il suffit d'ajouter à la balise INPUT ciblée l'attribut autocomplete="off". Cette solution fonctionne pour de nombreux navigateurs, mais ne passe pas la validation HTML, ce qui peut être un problème pour certains.

La seconde, exposée par Chris Holland, utilise JavaScript et le DOM, et s'utilise comme suit :

<input type="text" class="annuleCompletionDonnees" name="numeroCarteBleu" value=""/>

Et le script suivant à la fin du document :

<script language="JavaScript" type="text/javascript">
if (document.getElementsByTagName) {
  var inputElements = document.getElementsByTagName("input");
  for (i=0; inputElements[i]; i++) {
    if (inputElements[i].className && (inputElements[i].className.indexOf("annuleCompletionDonnees") != -1)) {
      inputElements[i].setAttribute("autocomplete","off");
      }
    }
  }
</script>

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page