Comment désactiver votre navigateur Autocomplete sur le champ formulaire web / tag d'entrée?

voix
2k

Comment désactiver autocompletedans les principaux navigateurs pour un particulier input(ou form field)?

Créé 05/08/2008 à 17:22
source utilisateur
Dans d'autres langues...                            


61 réponses

voix
2k

Firefox 30 ne tient pas compte autocomplete="off"des mots de passe, en optant pour inviter l'utilisateur à la place que le mot de passe doit être stocké sur le client. Notez les points suivants commentaire le 5 mai 2014:

  • Le gestionnaire de mots de passe toujours demande si elle veut enregistrer un mot de passe. Les mots de passe ne sont pas enregistrés sans l' autorisation de l'utilisateur.
  • Nous sommes le troisième navigateur pour mettre en œuvre ce changement, après IE et Chrome.

Selon la documentation développeur Mozilla l'attribut élément de forme autocompleteempêche les données de formulaire d'être mis en cache dans les navigateurs plus anciens.

<input type="text" name="foo" autocomplete="off" />
Créé 05/08/2008 à 17:24
source utilisateur

voix
237

En plus autocomplete=off, vous pouvez aussi avoir vos noms de champs de formulaire sont répartis de façon aléatoire par le code qui génère la page, peut - être en ajoutant une chaîne spécifique de session à la fin des noms.

Lorsque le formulaire est soumis, vous pouvez enlever cette partie avant de les traiter sur le côté serveur. Cela empêcherait le navigateur Web de contexte pour trouver votre domaine et pourrait aussi aider à prévenir les attaques de XSRF parce qu'un attaquant ne serait pas en mesure de deviner les noms de champs pour une soumission de formulaire.

Créé 20/10/2008 à 14:36
source utilisateur

voix
181

La plupart des principaux navigateurs et gestionnaires de mot de passe ( à juste titre , à mon humble avis) maintenant ignorer autocomplete=off.

Pourquoi? De nombreuses banques et autres sites « haute sécurité » ajouté autocomplete=offà leurs pages de connexion « pour des raisons de sécurité » , mais cela diminue réellement la sécurité , car il pousse les gens à changer les mots de passe sur ces sites de haute sécurité pour être facile à retenir (et donc se fissurer) depuis autocomplete a été cassé.

Il y a longtemps la plupart des gestionnaires de mot de passe ont commencé à ignorer autocomplete=off, et maintenant les navigateurs commencent à faire la même chose pour les entrées nom d' utilisateur / mot de passe.

Malheureusement, des bugs dans les implémentations de saisie semi-automatique insérer le nom d'utilisateur et / ou des informations de mot de passe dans les champs de formulaire inappropriés, ce qui provoque des erreurs de validation de forme, ou pire encore, insertion accidentelle des noms d'utilisateur dans les champs que par l'utilisateur ont été intentionnellement laissée en blanc.

Qu'est-ce qu'un développeur web faire?

  • Si vous pouvez garder tous les champs de mot de passe sur une page par eux-mêmes, c'est un bon début car il semble que la présence d'un champ de mot de passe est le principal élément déclencheur pour l'utilisateur / pass autocomplete pour lancer. Sinon, lisez les conseils ci-dessous.
  • Safari remarque qu'il ya 2 champs de mot de passe et désactive autocomplete dans ce cas, en supposant qu'il doit être une forme de mot de passe de changement, pas un formulaire de connexion. Donc , juste être sûr d'utiliser 2 champs de mot de passe (nouveau et confirmer le nouveau) pour toutes les formes où vous permettent
  • Chrome 34, malheureusement, va essayer de remplir automatiquement les champs avec l' utilisateur / pass chaque fois qu'il voit un champ de mot de passe. Ceci est tout à fait un mauvais bug qui nous l' espérons, ils changeront le comportement Safari. Cependant, l' ajout de ce haut de votre formulaire semble désactiver le mot de passe autofill:

    <input type="text" style="display:none">
    <input type="password" style="display:none">
    

Je ne l'ai pas encore étudié à fond IE ou Firefox, mais il sera heureux de mettre à jour la réponse si d'autres ont des informations dans les commentaires.

Créé 23/04/2014 à 05:00
source utilisateur

voix
116

Parfois même autocomplete = off ne fait pas obstacle à remplir dans les informations d' identification dans les champs mal, mais pas de champ d'utilisateur ou pseudo.

Cette solution de contournement est en plus au poste de apinstein sur le comportement du navigateur.

fix du navigateur dans autofill en lecture seule et mis inscriptible sur mise au point (cliquez et onglet)

 <input type="password" readonly  
     onfocus="this.removeAttribute('readonly');"/>

Mise à jour: Safari Mobile met le curseur dans le champ, mais ne montre pas le clavier virtuel. New Fix fonctionne comme avant, mais gère le clavier virtuel:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Démo en direct https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Parce que le navigateur auto remplit les informations d'identification de champ de texte mal !?

Je remarque ce comportement étrange sur Chrome et Safari, quand il y a des champs de mot de passe dans la même forme. Je suppose que , le navigateur cherche un champ de mot de passe pour insérer vos informations d' identification enregistrées. Ensuite , il remplissages auto (juste deviner en raison de l' observation) , le champ textlike d'entrée le plus proche, qui apparaît avant le champ de mot de passe dans DOM. Comme le navigateur est la dernière instance et vous ne pouvez pas contrôler,

Ce readonly-fix ci-dessus a fonctionné pour moi.

Créé 16/06/2014 à 17:04
source utilisateur

voix
94
<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

Cela fonctionne dans Internet Explorer et Mozilla Firefox, l'inconvénient est que ce n'est pas la norme XHTML.

Créé 05/08/2008 à 17:27
source utilisateur

voix
54

Comme d'autres l'ont dit, la réponse est autocomplete="off"

Cependant, je pense qu'il est utile de préciser pourquoi il est une bonne idée d'utiliser dans certains cas comme des réponses à cela et dupliquer des questions ont suggéré qu'il est préférable de ne pas le mettre hors tension.

Arrêter les navigateurs enregistrement des numéros de carte de crédit ne doivent pas être laissés aux utilisateurs. Trop nombreux utilisateurs ne savent même pas c'est un problème.

Il est particulièrement important de mettre hors tension les champs pour les codes de sécurité des cartes de crédit. Comme cette page états:

« Ne jamais stocker le code de sécurité ... sa valeur dépend de la présomption que la seule façon de lui fournir est de le lire à partir de la carte de crédit physique, prouvant que la personne qui fournit détient effectivement la carte. »

Le problème est, si elle est un ordinateur public (cyber café, bibliothèque , etc.) , il est alors facile pour les autres utilisateurs de voler votre carte, et même sur votre propre machine un site Web malveillant pourrait voler des données autocomplete .

Créé 23/01/2009 à 22:21
source utilisateur

voix
50

La solution pour Chrome est d'ajouter autocomplete="new-password"au mot de passe type d'entrée.

Exemple:

<form name="myForm"" method="post">
<input name="user" type="text" />
<input name="pass" type="password" autocomplete="new-password" />
<input type="submit">
</form>

Chrome toujours saisie semi - automatique des données si elle trouve une boîte de mot de passe de type , juste assez pour indiquer pour cette boîte autocomplete = "new-password".

Cela fonctionne bien pour moi.

Remarque: assurez-vous que vos F12 avec modifications prennent effet, les navigateurs plusieurs fois enregistrer la page dans le cache, cela m'a donné une mauvaise impression que cela ne fonctionnait pas, mais le navigateur n'a apporté les changements.

Créé 24/11/2016 à 17:07
source utilisateur

voix
29

Je dois demander de différer ces réponses qui disent pour éviter la désactivation de l'auto-complétion.

La première chose à mettre en place est que l'auto-complétion ne pas être explicitement désactivé sur le formulaire de connexion champs est un échec PCI-DSS. De plus, si est compromise alors les données de saisie semi-automatique peuvent être obtenues trivialement machine locale d'un utilisateur par un attaquant en raison de son être stocké en clair.

Il y a certainement un argument pour la facilité d'utilisation, mais il y a un équilibre très bien quand il vient à laquelle les champs de formulaire doivent avoir désactivé et saisie semi-automatique qui ne devrait pas.

Créé 17/09/2011 à 01:33
source utilisateur

voix
24

Trois options: Premièrement:

<input type='text' autocomplete='off' />

Seconde:

<form action='' autocomplete='off'>

Troisième (code javascript):

$('input').attr('autocomplete', 'off');
Créé 19/03/2013 à 11:05
source utilisateur

voix
18

J'ai essayé des solutions sans fin, et je trouve ceci:

Au lieu de autocomplete="off"simplement utiliser simplementautocomplete="false"

Aussi simple que cela, et il fonctionne comme un charme dans Google Chrome aussi!

Créé 01/05/2015 à 05:56
source utilisateur

voix
17

Il suffit de définir autocomplete="off". Il y a une très bonne raison de faire ceci: Vous voulez fournir votre propre fonctionnalité de saisie semi - automatique!

Créé 05/08/2008 à 17:32
source utilisateur

voix
16

Aucune des solutions a fonctionné pour moi dans cette conversation.

J'ai finalement trouvé une solution pure HTML qui nécessite pas Javascript , fonctionne dans les navigateurs modernes (sauf IE, il y avait au moins 1 prise, non?), Et ne vous oblige pas à désactiver autocomplete pour le formulaire.

Il suffit de désactiver la saisie semi - automatique formpuis l' activer pour tout inputvous le souhaitez travailler dans le formulaire. Par exemple:

<form autocomplete="off">
    <!-- these inputs will not allow autocomplete and chrome 
         won't highlight them yellow! -->
    <input name="username"  />
    <input name="password" type="password" />
    <!-- this field will allow autocomplete to work even 
         though we've disabled it on the form -->
    <input name="another_field" autocomplete="on" />
</form>
Créé 15/08/2013 à 20:02
source utilisateur

voix
16

Je pense autocomplete=offest pris en charge en HTML 5.

Demandez-vous pourquoi vous voulez le faire bien - il peut être judicieux dans certaines situations, mais ne le font pas juste pour le plaisir de le faire.

Il est moins pratique pour les utilisateurs et même pas un problème de sécurité dans OS X (mentionné par Soren ci - dessous). Si vous êtes inquiet au sujet des personnes ayant leur mot de passe volés à distance - un enregistreur de frappe pourrait encore le faire même si votre application utilise autcomplete=off.

En tant qu'utilisateur qui choisit d'avoir un navigateur rappelez-vous (la plupart) mes informations, je trouve ennuyeux si votre site n'a pas à moi souvenir.

Créé 24/02/2011 à 00:24
source utilisateur

voix
16

Nous avons en fait utilisé SASB idée d » pour un site. Il était une application web de logiciels médicaux pour exécuter le bureau d'un médecin. Cependant, beaucoup de nos clients étaient des chirurgiens qui ont utilisé beaucoup de différents postes de travail, y compris les terminaux semi-publics. Donc, ils voulaient faire en sorte qu'un médecin qui ne comprend pas l'implication des mots de passe enregistrés automatiquement ou ne prête pas attention ne peut pas laisser accidentellement leurs informations de connexion facilement accessible. Bien sûr, cela était avant l'idée de la navigation privée qui commence à figurer dans IE8, FF3.1, etc. Même si, de nombreux médecins sont contraints d'utiliser les anciens navigateurs scolaires dans les hôpitaux avec l' informatique qui ne changera pas.

Donc, nous avons eu la page de connexion générer des noms de champs aléatoires qui ne fonctionne que pour ce poste. Oui, il est moins pratique, mais il est juste de frapper l'utilisateur sur la tête de ne pas stocker les informations de connexion sur les terminaux publics.

Créé 16/09/2008 à 16:35
source utilisateur

voix
16

Sur un ou lié en fait, sur la note complètement à l'opposé -

« Si vous êtes l'utilisateur du formulaire ci - dessus et que vous voulez réactiver la fonctionnalité de saisie semi - automatique, utilisez le bookmarklet « mot de passe oublié » de cette page Bookmarklets Il supprime tous. autocomplete="off"Attributs de toutes les formes de la page. Garder le bon combat! "

Créé 08/09/2008 à 20:29
source utilisateur

voix
13

Était une façon non standard pour le faire (je pense que Mozilla et Internet Explorer soutiennent encore), mais de jouer avec les attentes des utilisateurs est une mauvaise idée.

Si l'utilisateur saisit leur numéro de carte de crédit sous une forme, puis laisser quelqu'un d'autre de l'utiliser ce navigateur ce n'est pas votre préoccupation. :)

Créé 05/08/2008 à 17:26
source utilisateur

voix
10

Ajout de la

autocomplete="off"

à la balise form désactivera la saisie semi - automatique du navigateur (ce qui a été tapé précédemment dans ce champ) de tous les inputchamps dans cette forme particulière.

Testé sur:

  • Firefox 3.5, 4 BETA
  • Internet Explorer 8
  • Chrome
Créé 11/02/2011 à 06:14
source utilisateur

voix
9

Ajout autocomplete="off"n'est pas coupé va elle.

Modifier attribut type d'entrée type="search".
Google ne s'applique pas auto-remplissage aux entrées avec un type de recherche.

Créé 28/10/2015 à 16:32
source utilisateur

voix
9

Afin d'éviter le XHTML valide, vous pouvez définir cet attribut en utilisant javascript. Exemple d'utilisation jQuery:

<input type="text" class="noAutoComplete" ... />

$(function() {
    $('.noAutoComplete').attr('autocomplete', 'off');
});

Le problème est que les utilisateurs sans javascript feront obtenir la fonctionnalité de saisie semi-automatique.

Créé 12/12/2010 à 19:34
source utilisateur

voix
8

Je ne peux pas croire que cela est encore un problème si longtemps après qu'il ait été rapporté. Les solutions ci-dessus n'a pas fonctionné pour moi, comme safari semblait savoir quand l'élément n'a pas été affiché ou hors de l'écran, mais ce qui suit a travaillé pour moi:

<div style="height:0px; overflow:hidden; ">
  Username <input type="text" name="fake_safari_username" >
  Password <input type="password" name="fake_safari_password">
</div>

Espérons que quelqu'un est utile pour!

Créé 23/04/2016 à 11:02
source utilisateur

voix
8

Un peu tard pour le jeu ... mais je suis tombé sur ce problème et a essayé plusieurs échecs, mais celui - ci fonctionne pour moi trouvé sur MDN

Dans certains cas, le navigateur continuera à proposer des valeurs d'auto-complétion, même si l'attribut autocomplete est désactivé. Ce comportement inattendu peut être assez déroutant pour les développeurs. L'astuce pour vraiment forcer le pas d'achèvement est d'attribuer une chaîne aléatoire à l'attribut comme ceci:

autocomplete="nope"
Créé 22/03/2016 à 19:38
source utilisateur

voix
8

Ceci est un problème de sécurité que les navigateurs ignorent maintenant. Les navigateurs identifient et le contenu des magasins en utilisant des noms d'entrée, même si les développeurs considèrent l'information est sensible et ne doivent pas être stockés. Faire un nom d'entrée différent entre 2 demandes va résoudre le problème (mais sera toujours enregistrée dans le cache du navigateur et augmentera également le cache du navigateur). Demandez à l'utilisateur d'activer ou de désactiver les options dans les paramètres de son navigateur n'est pas une bonne solution. Le problème peut être résolu dans le back-end.

Voici ma solution. Une approche que j'ai mis en œuvre dans mon cadre. Tous les éléments de saisie semi-automatique sont générés avec une entrée cachée comme ceci:

<? $r = rmd5(rand().mocrotime(TRUE)); ?>
<form method="POST" action="./">
    <input type="text" name="<? echo $r; ?>" />
    <input type="hidden" name="__autocomplete_fix_<? echo $r; ?>" value="username" />
    <input type="submit" name="submit" value="submit" />
</form>

Serveur, les variables post processus comme celui-ci:

foreach ($_POST as $key => $val)
{
    if(preg_match('#^__autocomplete_fix_#', $key) === 1){
        $n = substr($key, 19);
        if(isset($_POST[$n]))$_POST[$val] = $_POST[$n];
    }
}

La valeur est accessible comme d'habitude

var_dump($_POST['username']);

Et le navigateur ne sera pas en mesure de proposer des informations de la requête précédente ou des utilisateurs précédents.

Toutes les œuvres comme un charme, même si les mises à jour des navigateurs, veulent ignorer autocomplete ou non. Cela a été la meilleure façon de résoudre le problème pour moi.

Créé 02/06/2015 à 20:37
source utilisateur

voix
8

essayez ces trop si tout autocomplete="off"ne fonctionne pas:

autocorrect="off" autocapitalize="off" autocomplete="off"
Créé 04/12/2012 à 19:24
source utilisateur

voix
8

Utilisez un nom non standard et id pour les champs, donc plutôt que de « nom » ont « name_ ». Les navigateurs verront alors pas comme étant le champ de nom. La meilleure partie à ce sujet est que vous pouvez le faire à certains, mais pas tous les domaines et il saisie semi-automatique certains, mais pas tous les domaines.

Créé 05/08/2008 à 17:27
source utilisateur

voix
7

Aucun des hacks mentionnés ici a travaillé pour moi dans Chrome. Il y a une discussion sur la question ici: https://code.google.com/p/chromium/issues/detail?id=468153#c41

L' ajout de ce à l' intérieur d' une des <form>œuvres (au moins pour l' instant):

<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>
Créé 02/07/2015 à 10:40
source utilisateur

voix
6

La meilleure solution:

Empêcher le nom d'utilisateur autocomplete (ou e-mail) et mot de passe:

<input type="email" name="email"><!-- Can be type="text" -->
<input type="password" name="password" autocomplete="new-password">

Prévenir les autocomplete un champ:

<input type="text" name="field" autocomplete="nope">

Explication: Le autocompletetravail se poursuit dans <input>, autocomplete="off"ne fonctionne pas, mais vous pouvez changer offà une chaîne aléatoire, comme nope.

Travaille dans:

  • Chrome: 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 et 64

  • Firefox: 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 et 58

Créé 20/03/2018 à 04:31
source utilisateur

voix
6

Essayez d'ajouter

readonly onfocus = "this.removeAttribute ( 'readonly');"

en plus de

autocomplete = "off"

à l'entrée (s) que vous ne voulez pas de se rappeler des données de formulaire ( username, password, etc.) , comme indiqué ci - dessous:

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

Testé sur les dernières versions des principaux navigateurs à savoir Google Chrome, Mozilla Firefox, Microsoft Edge, etc. et travailler sans aucun problème. J'espère que cela t'aides...

Créé 01/11/2017 à 13:26
source utilisateur

voix
6

Cela fonctionne pour moi.

<input name="pass" type="password" autocomplete="new-password" />

Nous pouvons également utiliser cette stratégie dans d'autres contrôles comme du texte, sélectionnez etc.

Créé 30/12/2016 à 15:05
source utilisateur

voix
5

Alors, est-il ici:

function turnOnPasswordStyle() {
  $('#inputpassword').attr('type', "password");
}
<input oninput="turnOnPasswordStyle()" id="inputpassword" type="text">

Créé 29/05/2016 à 19:57
source utilisateur

voix
5

Vous pouvez utiliser en entrée.

Par exemple;

<input type=text name="test" autocomplete="off" />
Créé 02/11/2012 à 18:00
source utilisateur

voix
4

Vous pouvez simplement mettre le autocomplete="off"dans les champs HTML comme code suivant.

<input type="text" name="" value="" autocomplete="off" />
Créé 12/05/2016 à 10:53
source utilisateur

voix
4

Vous pouvez désactiver autocomplete si vous supprimez l' formétiquette, la même chose a été fait par ma banque et je me demandais comment ils ont fait cela. Il élimine même la valeur qui a déjà été rappelé par le navigateur après avoir supprimé la balise.

Créé 25/02/2016 à 15:27
source utilisateur

voix
4

Chrome envisage de soutenir ce .

Pour l'instant, la meilleure suggestion est d'utiliser un type d'entrée qui est rarement autocompleted.

discussion chrome

<input type='search' name="whatever" />

pour être compatible avec Firefox, autocomplétion normale = « off »

<input type='search' name="whatever" autocomplete='off' />
Créé 10/12/2015 à 02:21
source utilisateur

voix
3

De nombreux navigateurs modernes ne prennent pas en charge autocomplete = « off » pour les champs de connexion plus. autocomplete="new-password"est wokring à la place, plus d' informations MDN docs

Créé 21/12/2017 à 04:33
source utilisateur

voix
3

J'utilise ce TextMode="password" autocomplete="new-password"et à la page en charge ASPXtxtPassword.Attributes.Add("value", '');

Créé 14/03/2017 à 09:35
source utilisateur

voix
3

Mon problème était la plupart du temps avec Chrome autofill, mais je pense que cela est probablement plus problématique que autocomplete.

Trick: à l'aide d'une minuterie pour réinitialiser la forme et définir des champs de mot de passe à blanc. La durée 100ms semble être minime pour que cela fonctionne.

$(document).ready(function() {
    setTimeout(function() {
        var $form = $('#formId');
        $form[0].reset();
        $form.find('INPUT[type=password]').val('');
    }, 100);
});
Créé 12/07/2016 à 15:29
source utilisateur

voix
3

La réponse dsuess affichée readonly était très intelligent et a travaillé. Mais comme je me sers boostrap, le champ d'entrée a été readonly - jusqu'à ce concentré - marqué avec un fond gris. Pendant le chargement de documents, vous pouvez tromper le navigateur en bloquant simplement et déverrouiller l'entrée.

Donc, j'ai eu une idée de mettre en œuvre cette solution en jQuery:

    jQuery(document).ready(function () {
        $("input").attr('readonly', true);
        $("input").removeAttr('readonly');
   });
Créé 16/06/2016 à 10:43
source utilisateur

voix
3

Si votre problème est d'avoir un champ de mot de passe en cours d'achèvement automatique, vous pouvez trouver ce utile ...

Nous avons eu ce problème dans plusieurs domaines de notre site où l'entreprise voulait re-interroger l'utilisateur pour son nom d'utilisateur et mot de passe et en particulier ne voulait pas le mot de passe autofill à travailler pour des raisons contractuelles. Nous avons trouvé que la meilleure façon de le faire est de mettre dans un champ de faux mot de passe pour le navigateur pour trouver et remplir tout le champ de mot de passe réel reste intacte.

<!-- This is a fake password input to defeat the browser's autofill behavior -->
<input type="password" id="txtPassword" style="display:none;" />
<!-- This is the real password input -->
<input type="password" id="txtThisIsTheRealPassword" />

Notez que dans Firefox et IE, il était tout simplement assez pour mettre une entrée de mot de passe de type avant l'actuel, mais Chrome a vu à travers cela et m'a forcé à nommer en fait l'entrée de faux mot de passe (en lui donnant un identifiant de mot de passe évident) pour l'obtenir à "mordre". J'ai utilisé une classe pour mettre en œuvre le style au lieu d'utiliser un style intégré essayez donc que si le précède ne fonctionne pas pour une raison quelconque.

Créé 27/04/2016 à 20:44
source utilisateur

voix
3

C'est ce que nous avons appelé autocomplete d'une zone de texte. entrez la description d'image ici Nous pouvons désactiver saisie semi - automatique d'une zone de texte dans 2 façons -

  1. Par étiquette du navigateur
  2. par code

    Pour désactiver dans le navigateur pour passer au réglage

    Pour dissable à parcourir pour passer au réglage

Allez faire avancer le réglage et décochez la case puis Restaurer.

Allez faire avancer le réglage et décochez la case puis Restaurer.

Si vous souhaitez désactiver dans l' étiquette de codage que vous pouvez faire comme suivi
utilisant AutoCompleteType="Disabled":

<asp:TextBox runat="server" ID="txt_userid" AutoCompleteType="Disabled"></asp:TextBox>  

Paramétrez formulaire autocomplete="off":

<asp:TextBox runat="server" ID="txt_userid" autocomplete="off"></asp:TextBox> 

Paramétrez formulaire autocomplete="off":

<form id="form1" runat="server" autocomplete="off">  
    //your content
</form>  

En utilisant le code dans la page .cs

protected void Page_Load(object sender, EventArgs e)  
    {  
    if(!Page.IsPostBack)  
    {  


        txt_userid.Attributes.Add("autocomplete", "off");  

    }  
}  

En utilisant Jquery

head runat="server">  
<title></title>  
<script src="Scripts/jquery-1.6.4.min.js"></script>  
<script type="text/javascript">  
    $(document).ready(function () {  
        $('#txt_userid').attr('autocomplete', 'off');  

    });  

</script>  
Créé 19/03/2016 à 05:05
source utilisateur

voix
3
<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        try {
            $("input[type='text']").each(function(){
                           $(this).attr("autocomplete","off");
                        });
        }
        catch (e)
        { }
    });

</script>
Créé 16/11/2015 à 13:02
source utilisateur

voix
2

Je l'ai résolu le combat sans fin avec Google Chrome avec l'utilisation de caractères aléatoires.

<input name="name" type="text" autocomplete="rutjfkde">

Espérons que cela aidera à d'autres personnes.

Créé 04/08/2018 à 14:22
source utilisateur

voix
2

Google Chrome ignore l' autocomplete="off"attribut pour certaines entrées, y compris les entrées de mot de passe et les entrées communes détectées par nom.

Par exemple, si vous avez une entrée avec le nom address, puis Chrome fournira des suggestions de remplissage automatique des adresses saisies sur d' autres sites, même si vous lui dites pas :

<input type="string" name="address" autocomplete="off">

Si vous ne voulez pas Chrome de le faire, vous pouvez renommer ou namespace le nom du champ de formulaire:

<input type="string" name="mysite_addr" autocomplete="off">

Si cela ne vous dérange pas les valeurs autocompleting qui étaient auparavant entrés sur votre site, vous pouvez laisser autocomplete activé. Les espaces de noms le nom du champ devrait être suffisant pour empêcher les valeurs souvenaient d'autres sites d'apparaître.

<input type="string" name="mysite_addr" autocomplete="on">
Créé 22/06/2018 à 06:10
source utilisateur

voix
2

Il ne semble pas être possible d'y parvenir sans l'aide d'un code côté côté client de combinaison et le serveur.

Afin de vous assurer que l'utilisateur doit remplir le formulaire chaque fois sans autocomplete j'utiliser les techniques suivantes:

  1. Générer les noms de champs de formulaire sur le serveur et utiliser les champs d'entrée cachés pour stocker ces noms, de sorte que lorsqu'il est soumis au serveur le code côté serveur peut utiliser les noms générés pour accéder aux valeurs de champ. Ceci est d'arrêter l'utilisateur d'avoir la possibilité d'auto remplir les champs.

  2. Placez trois instances de chaque champ de formulaire sur le formulaire et cacher les premiers et les derniers champs de chaque jeu à l'aide css puis les désactiver après chargement de la page en utilisant javascript. Ceci est d'empêcher le navigateur de remplir les champs automatiquement.

Voici un violon qui démontre le javascript, css et html comme décrit dans # 2 https://jsfiddle.net/xnbxbpv4/

javascript:

$(document).ready(function() {
    $(".disable-input").attr("disabled", "disabled");
});

css:

.disable-input {
  display: none;
}

html:

<form>
<input type="email" name="username" placeholder="username" class="disable-input">
<input type="email" name="username" placeholder="username">
<input type="email" name="username" placeholder="username" class="disable-input">
<br>
<input type="password" name="password" placeholder="password" class="disable-input">
<input type="password" name="password" placeholder="password">
<input type="password" name="password" placeholder="password" class="disable-input">
<br>
<input type="submit" value="submit">
</form>

Voici un exemple de ce que le rugueux code serveur en utilisant asp.net avec rasoir serait de faciliter # 1

modèle:

public class FormModel
{
    public string Username { get; set; }
    public string Password { get; set; }
}

manette:

public class FormController : Controller
{
    public ActionResult Form()
    {
        var m = new FormModel();

        m.Username = "F" + Guid.NewGuid().ToString();
        m.Password = "F" + Guid.NewGuid().ToString();

        return View(m);
    }

    public ActionResult Form(FormModel m)
    {
        var u = Request.Form[m.Username];
        var p = Request.Form[m.Password];

        // todo: do something with the form values

        ...

        return View(m);
    }
}

vue:

@model FormModel

@using (Html.BeginForm("Form", "Form"))
{
    @Html.HiddenFor(m => m.UserName)
    @Html.HiddenFor(m => m.Password)

    <input type="email" name="@Model.Username" placeholder="username" class="disable-input">
    <input type="email" name="@Model.Username" placeholder="username">
    <input type="email" name="@Model.Username" placeholder="username" class="disable-input">
    <br>
    <input type="password" name="@Model.Password" placeholder="password" class="disable-input">
    <input type="password" name="@Model.Password" placeholder="password">
    <input type="password" name="@Model.Password" placeholder="password" class="disable-input">
    <br>
    <input type="submit" value="submit">
}
Créé 28/02/2017 à 10:25
source utilisateur

voix
2

Safari ne change pas d' avis sur autocomplete si vous définissez autocomplete="off"dynamiquement de javascript. Cependant , il respecterait si vous le faites sur une base par champ.

$(':input', $formElement).attr('autocomplete', 'off');
Créé 01/11/2015 à 10:28
source utilisateur

voix
2

Je sais que c'est un ancien poste, mais il pourrait être important de savoir que Firefox (je pense que Firefox) utilise une valeur appelée ismxfilledqui force essentiellement autocomplete.

ismxfilled="0" pour OFF

ou

ismxfilled="1" pour ON

Créé 13/08/2015 à 18:22
source utilisateur

voix
1

Essaye ça :

<input type='text' autocomplete='off' />
Créé 27/05/2017 à 08:13
source utilisateur

voix
1

Je voudrais préciser que cette réponse est pour être complet et pour la connaissance de la communauté, en aucun cas est-il recommandé.

En ce qui concerne Internet Explorer 11, il y a une fonction de sécurité en place qui peut être utilisé pour bloquer autocomplete. Il fonctionne comme ceci:

Toute valeur d'entrée de forme qui est modifiée en JavaScript après que l'utilisateur a déjà entré il est marqué comme non éligibles pour autocomplete.

Cette fonction est normalement utilisé pour protéger les utilisateurs contre les sites Web malveillants qui veulent changer votre mot de passe une fois que vous entrez ou similaires.

Cependant, vous pouvez insérer un caractère spécial au début d'une chaîne de mot de passe pour bloquer autocomplete. Ce caractère spécial pourrait être détecté et enlevé plus tard sur le pipeline.

Créé 17/11/2016 à 17:41
source utilisateur

voix
1

Une solution de contournement est de ne pas insérer le champ de mot de passe dans le DOM avant que l'utilisateur veut changer le mot de passe. Cela peut être applicable dans certains cas:

Dans notre système, nous avons un champ de mot de passe dans une page d'administration, nous devons donc éviter de mettre par inadvertance d'autres mots de passe des utilisateurs. Le formulaire a une case à cocher supplémentaire qui permet de basculer le champ de mot de passe visibilité pour cette raison.

Donc dans ce cas, le remplissage automatique d'un gestionnaire de mot de passe devient un double problème, parce que l'entrée ne sera même pas visible à l'utilisateur.

La solution était d'avoir la gâchette de case à cocher si le champ de mot de passe est inséré dans le DOM, non seulement sa visibilité.

la mise en œuvre de pseudo pour AngularJS:

<input type="checkbox" ng-model="createPassword">
<input ng-if="changePassword" type="password">
Créé 24/10/2016 à 09:16
source utilisateur

voix
1

J'utilise l'extrait jQuery suivant:

// Prevent input autocomplete
$.fn.preventAutocomplete = function() {
    this.each(function () {
        var $el = $(this);
        $el
            .clone(false, false)
            .insertBefore($el)
            .prop('id', '')
            .hide()
        ;
    });
};

Et pas seulement $('#login-form input').preventAutocomplete();

Créé 02/09/2016 à 10:14
source utilisateur

voix
0

Pour éviter les informations d'identification site auto navigateur remplir avec l'utilisateur enregistré de connexion, placez un texte et champ de saisie mot de passe en haut de la forme avec des valeurs non vides et le style « position: absolute; top: -999px; gauche: -999px » set cacher les champs.

<form>
  <input type="text" name="username_X" value="-" tabindex="-1" aria-hidden="true" style="position: absolute; top: -999px; left:-999px" />
  <input type="password" name="password_X" value="-" tabindex="-1" aria-hidden="true" style="position: absolute; top: -999px; left:-999px" />
  <!-- Place the form elements below here. -->
</form>

Il est important qu'un champ texte le champ précède mot de passe. Sinon, le remplissage automatique ne peut pas être évitée dans certains cas.

Il est important que la valeur le texte et les champs de mot de passe ne soit pas vide, pour empêcher les valeurs par défaut d'être remplacées dans certains cas.

Il est important que ces deux domaines sont avant que le champ de type de mot de passe « réel » (s) sous la forme.

Pour les navigateurs plus récents qui sont html 5.3 compliant la valeur d'attribut autocomplete « nouveau mot de passe » devrait fonctionner.

<form>
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" autocomplete="new-password" />
</form>

Une combinaison des deux méthodes peuvent être utilisées pour soutenir les navigateurs plus anciens et plus récents.

<form>
  <div style="display:none">
    <input type="text" readonly tabindex="-1" />
    <input type="password" readonly tabindex="-1" />
  </div>
  <!-- Place the form elements below here. -->
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" autocomplete="new-password" />
</form>
Créé 07/07/2018 à 18:20
source utilisateur

voix
0

Pour résoudre ce problème, je l'ai utilisé quelques trucs CSS et les œuvres suivantes pour moi.

input {
    text-security:disc;
    -webkit-text-security:disc;
    -mox-text-security:disc;
}

S'il vous plaît lire cet article pour plus de détails.

Créé 11/05/2018 à 13:19
source utilisateur

voix
0

J'ai pu arrêter Chrome 66 de remplissage automatique en ajoutant deux entrées fausses et en leur donnant la position absolue:

<form style="position: relative">
  <div style="position: absolute; top: -999px; left: -999px;">
    <input name="username" type="text" />
    <input name="password" type="password" />
  </div>
  <input name="username" type="text" />
  <input name="password" type="password" />

Au début, j'ai essayé d' ajouter display:none;aux entrées , mais Chrome les ignora et autofilled ceux qui sont visibles.

Créé 08/05/2018 à 22:07
source utilisateur

voix
0

Aucune entrée faux, pas javascript!

Il n'y a aucun moyen ne désactivez autofill constamment à travers les navigateurs. J'ai essayé toutes les différentes suggestions et aucun d'entre eux travaillent dans tous les navigateurs. La seule façon n'utilise pas d'entrée de mot de passe du tout. Voici ce que je suis venu avec:

<style type="text/css">
    @font-face {
        font-family: 'PasswordDots';
        url('/assets/font/password-dots.woff2?v=1.0.0') format('woff2');
        font-weight: normal;
        font-style: normal;
    }

    input.password {
        font-family: 'PasswordDots' !important;
        font-size: 8px !important;
    }
</style>

<input class="password" type="text" spellcheck="false" />

Télécharger: mot de passe dots.woff2

Voici comment mon résultat final ressemble à:

Masque de mot de passe

L'effet secondaire négatif est qu'il est possible de copier le texte brut de l'entrée, mais il devrait être possible d'empêcher que certains JS.

Créé 13/04/2018 à 06:35
source utilisateur

voix
0

enfin je suis arrivé une première solution ajouter 2 champs de texte cachés

et il suffit d'ajouter une directive angulaire comme celui-ci

 (function () {

    'use strict';

    appname.directive('changePasswordType', directive);

    directive.$inject = ['$timeout', '$rootScope',  '$cookies'];

    function directive($timeout,  $rootScope, $cookies) {
        var directive = {
            link: link,
            restrict: 'A'
        };

        return directive;

        function link(scope,element) {
            var process = function () {
                var elem =element[0];
                elem.value.length > 0 ? element[0].setAttribute("type", "password") :
                element[0].setAttribute("type", "text");
            }

            element.bind('input', function () {
                process();
            });

            element.bind('keyup', function () {
                process();
            });
        }
    }
})()

puis utilisez dans votre champ de texte où vous devez éviter complet automatique

    <input type="text" style="display:none">\\can avoid this 2 lines
    <input type="password" style="display:none">
    <input type="text"  autocomplete="new-password" change-password-type>

NB: Ne pas oublier d'inclure jquery, et mis type ="text"initialement

Créé 26/03/2018 à 12:07
source utilisateur

voix
0

Vous pouvez également utiliser un au lieu d'une entrée pour sauter la partie de saisie semi - automatique.

Créé 19/03/2018 à 12:18
source utilisateur

voix
0

Vous pouvez utiliser autocomplete = off dans les contrôles d'entrée pour éviter l'achèvement automatique

Par exemple:

<input type=text name="test" autocomplete="off" />

si le code ci-dessus ne fonctionne alors essayez d'ajouter les attributs autocapitalize = « off » autocomplete = « off »

Créé 03/03/2018 à 00:47
source utilisateur

voix
0

Vous pouvez utiliser autocomplete = off dans les contrôles d'entrée pour éviter l'achèvement automatique

Par exemple:

<input type=text name="test" autocomplete="off" />

si le code ci-dessus ne fonctionne pas, essayez d'ajouter ces attributs aussi

autocapitalize = "off" autocomplete = "off"

ou

Modifier attribut type d'entrée type = « recherche ». Google ne s'applique pas auto-remplissage aux entrées avec un type de recherche.

Créé 03/03/2018 à 00:35
source utilisateur

voix
0

Fixé. Juste besoin d'ajouter au-dessus de champ de saisie réel

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion - MDN https://medium.com/paul-jaworski/turning-off-autocomplete-in-chrome-ee3ff8ef0908 - moyen testé sur EDGE, Chrome (dernière V63), Firefox Quantum (57.0.4 64 бит), Firefox (52.2.0) les champs faux sont une solution pour autofill chrome / opéra obtenir les champs mal

 const fakeInputStyle = {opacity: 0, float: 'left', border: 'none', height: '0', width: '0'}

 <input type="password" name='fake-password' autoComplete='new-password' tabIndex='-1' style={fakeInputSyle} />

<TextField
  name='userName'
  autoComplete='nope'
  ... 
/>

<TextField
      name='password'
      autoComplete='new-password'
      ... 
    />
Créé 19/01/2018 à 12:57
source utilisateur

voix
0

Aucune des réponses fournies a travaillé sur tous les navigateurs que j'ai testé. Construire des réponses déjà fournies, ce que je fini avec (testé) sur Chrome 61 , Microsoft bord 40 (EdgeHTML 15), IE 11 , Firefox 57 , Opera 49 et Safari 5.1 . Il est loufoque à la suite de nombreux essais; mais il ne fonctionne pour moi.

<form autocomplete="off">
    ...
    <input type="password" readonly autocomplete="off" id="Password" name="Password" onblur="this.setAttribute('readonly');" onfocus="this.removeAttribute('readonly');" onfocusin="this.removeAttribute('readonly');" onfocusout="this.setAttribute('readonly');" />
    ...
</form> 

<script type="text/javascript">
    $(function () {           
        $('input#Password').val('');
        $('input#Password').on('focus', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
    $('input#Password').on('keyup', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
    $('input#Password').on('keydown', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
</script>
Créé 22/11/2017 à 08:28
source utilisateur

voix
0

autocomplete = « off » ne fonctionne pas pour moi, je mets quand même l'attribut valeur du champ d'entrée à un à- dire l'espace <input type='text' name='username' value=" ">qui a donné le caractère d'entrée par défaut à un espace, et comme le nom d' utilisateur était vide le mot de passe était éclairci aussi.

Créé 12/03/2017 à 19:17
source utilisateur

voix
-14

Pourquoi voudriez-vous rendre la vie de votre utilisateur moins pratique?

« Les mots de passe / données de carte de crédit / etc ne doivent pas être sauvés » est un mauvais argument: saisie semi - automatique sur, les navigateurs sous Mac OS X stocker ces valeurs dans une base de données cryptée avec des autorisations par application. A l' inverse, ce qui est l'effet réaliste autocomplete=off? L'utilisateur va écrire dans un fichier texte non chiffré, ou mieux encore, sur un post-it note jointe à l'écran.

Une bonne chose , il y a bookmarklets comme celui mentionné Antti et patches pour rendre le moteur ignorer l'attribut tout à fait .

Sérieusement, je vous invite à revenir en utilisant cet attribut. Il ne pas profiter tout le monde.

Créé 08/09/2008 à 20:42
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more