Jak se vám vypnout prohlížeč Autocomplete na webový formulář pole / vstup značku?

hlasů
2k

Jak zakázat autocompletev hlavních prohlížečů pro konkrétní input(nebo form field)?

Položena 05/08/2008 v 17:22
zdroj uživatelem
V jiných jazycích...                            


63 odpovědí

hlasů
2k

Firefox 30 ignoruje autocomplete="off"hesel, kteří se rozhodnou vyzve uživatele namísto zda heslo by mělo být uloženo na straně klienta. Všimněte si následující komentář od 5. května 2014:

  • Správce hesel vždy vyzve, pokud chce zachránit hesla. Hesla nejsou uloženy bez souhlasu uživatele.
  • Jsme třetí prohlížeč k provedení této změny, po IE a Chrome.

Podle dokumentaci pro vývojáře Mozilly atribut forma element autocompletezabraňuje data formuláře z mezipaměti ve starších prohlížečích.

<input type="text" name="foo" autocomplete="off" />
Odpovězeno 05/08/2008 v 17:24
zdroj uživatelem

hlasů
237

Kromě autocomplete=off, můžete mít také své formulářových polí názvy byly náhodně rozděleny podle kódu, který generuje stránku, možná tím, že přidá nějaký řetězec relace specifická na konec jmen.

Je-li odeslání formuláře, můžete zbavit, že část off před jejich zpracování na straně serveru. Tím by se zabránilo webový prohlížeč od nalezení kontext svém oboru a také může pomoci zabránit útokům XSRF protože útočník by nebyli schopni odhadnout, názvy polí pro odeslání formuláře.

Odpovězeno 20/10/2008 v 14:36
zdroj uživatelem

hlasů
181

Většina z hlavních prohlížečů a software pro správu hesel (správně, IMHO) nyní ignorují autocomplete=off.

Proč? Mnoho bank a ostatních „high zabezpečení“ webové stránky přidal autocomplete=offdo svých přihlašovacích stránek „z bezpečnostních důvodů“, ale to ve skutečnosti snižuje bezpečnost, protože to způsobuje lidi ke změně hesla na těchto high-zabezpečení míst, která mají být snadno zapamatovatelné (a tedy trhlin), protože automatické dokončování bylo rozbito.

Dávno většina manažerů heslo začal ignorovat autocomplete=off, a teď prohlížeče se začínají dělat totéž pro vstupům pouze uživatelské jméno / heslo.

Bohužel, chyby v implementaci automatického doplňování vložit uživatelské jméno a / nebo heslo informace do nevhodných polí formuláře, což způsobuje chyby ověření formy, nebo ještě hůř, náhodně vložení uživatelských jmen do polí, která byla záměrně ponechána prázdná uživatelem.

Co je webový vývojář dělat?

  • Pokud můžete zachovat všechna pole hesla na straně samy o sobě, že je to skvělý začátek, jak se zdá, že přítomnost pole pro heslo je hlavním impulsem pro uživatele / pass autocomplete účinkovat. V opačném případě si tipy níže.
  • Safari si všimne, že tam jsou 2 pole heslo a zakáže automatické dokončování v tomto případě, za předpokladu, že musí být forma změnu hesla, nikoli přihlašovací formulář. Takže jen je nutné použít 2 pole pro heslo (nové a potvrdit nový) u všech forem, kde umožňují
  • Chrome 34, bohužel, se bude snažit automaticky vyplnit pole s uživatelem / pass, kdykoli to uzná za pole hesla. To je docela špatný chyba, která doufejme, že se mění chování Safari. Nicméně dodává, že se to na vrcholu své formy se zdá zakázat heslo Automatické vyplňování:

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

I dosud zkoumány IE nebo Firefox důkladně, ale rádi aktualizovat odpověď, pokud ostatní mají informace v komentáři.

Odpovězeno 23/04/2014 v 05:00
zdroj uživatelem

hlasů
116

Někdy dokonce autocomplete = off by se nemělo bránit, aby zaplnil v pověření do nesprávných oblastí, nikoli však uživatele nebo přezdívku pole.

Toto řešení je navíc k tyči apinstein je o chování prohlížeče.

fix prohlížeč autofill v read-only a nastavit zapisovat na zaměření (klikni a tab)

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

Aktualizace: Mobile Safari nastaví kurzor do pole, ale nezobrazuje virtuální klávesnice. New Fix funguje stejně jako dříve, ale zpracovává virtuální klávesnice:

<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();  }" />

Živé Demo https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Vzhledem k tomu, Browser auto vyplní přihlašovací údaje ke špatným textovém poli !?

Všiml jsem si toto podivné chování v Chrome a Safari, když tam jsou hesla pole ve stejné formě. Myslím, že prohlížeč vypadá na pole s heslem k vložení disku uložená pověření. Pak to auto výplní (jen hádat kvůli pozorování) nejbližší textlike-textového pole, které se objeví před pole hesla v DOM. Vzhledem k tomu, prohlížeče je poslední instance a nelze jej kontrolovat,

Tento readonly-fix výše pracoval pro mě.

Odpovězeno 16/06/2014 v 17:04
zdroj uživatelem

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

To bude fungovat v aplikaci Internet Explorer a Mozilla Firefox, nevýhoda je, že to není XHTML standardem.

Odpovězeno 05/08/2008 v 17:27
zdroj uživatelem

hlasů
54

Jak již bylo řečeno, že odpověď je autocomplete="off"

Nicméně si myslím, že to stojí říkat , proč je to dobrý nápad použít to v některých případech i některé odpovědi na to a duplicitní otázky naznačují, že je lepší, aby jej vypnout.

Zastavení prohlížeče ukládání čísla kreditních karet by nemělo být ponecháno na uživateli. Příliš mnoho uživatelů ani neuvědomíte, že je to problém.

To je zvláště důležité, aby ho vypnout na polích pro bezpečnostní kódy kreditních karet. Jak k této stránce uvádí:

„Nikdy ukládat bezpečnostní kód ... jeho hodnota závisí na předpokladu, že jediný způsob, jak dodat, že je to číst z fyzického kreditní karty, což dokazuje, že tato osoba dodává, že ve skutečnosti je držitelem karty.“

Problém je v tom, jestli je to veřejný počítač (cyber kavárna, knihovna atd) je pak snadné pro ostatní uživatele, aby ukrást vaše údaje o kartě, a to i na svém vlastním počítači škodlivý web mohl ukrást automatického doplňování dat .

Odpovězeno 23/01/2009 v 22:21
zdroj uživatelem

hlasů
50

Řešením pro Chrome je přidat autocomplete="new-password"na typu vstupního hesla.

Příklad:

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

Chrome vždy automaticky doplnit data, pokud zjistí krabici typu hesla , jen tolik, aby označují za tou bednou autocomplete = "new-password".

To funguje dobře pro mě.

Poznámka: zkontrolujte, zda s F12, že změny se projeví, kolikrát prohlížečů stránku uložit do paměti cache, to mi dal špatný dojem, že to nefungovalo, ale prohlížeč nebyl ve skutečnosti přinést změny.

Odpovězeno 24/11/2016 v 17:07
zdroj uživatelem

hlasů
29

Budu muset prosit, aby se liší u těchto odpovědí, které říkají, aby nedošlo k vypnutí funkce automatického dokončování.

První věc, vychovávat je, že auto-complete není výslovně zakázána login formulářových polí je PCI-DSS nezdaří. Kromě toho, pokud je místní stroji uživatelů ohrožena poté všechna data automatického doplňování může být triviálně získat útočník kvůli tomu být uloženy v jasné.

Tam je jistě argument pro použitelnost, takže je tu velmi jemná rovnováha, pokud jde o který by měl mít pole formuláře automatického dokončování se zdravotním postižením a které nikoli.

Odpovězeno 17/09/2011 v 01:33
zdroj uživatelem

hlasů
24

Tři možnosti: Za prvé:

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

Druhý:

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

Třetí (javascript kód):

$('input').attr('autocomplete', 'off');
Odpovězeno 19/03/2013 v 11:05
zdroj uživatelem

hlasů
18

Snažil jsem se nekonečné řešení, a pak jsem našel toto:

Místo toho, aby autocomplete="off"prostě používatautocomplete="false"

Tak jednoduché, jak to, a funguje to jako kouzlo v prohlížeči Google Chrome stejně!

Odpovězeno 01/05/2015 v 05:56
zdroj uživatelem

hlasů
17

Stačí nastavit autocomplete="off". Je zde velmi dobrý důvod pro dělání toto: Chcete poskytnout vlastní funkci automatického doplňování!

Odpovězeno 05/08/2008 v 17:32
zdroj uživatelem

hlasů
16

Žádný z řešení pracoval pro mě v tomto rozhovoru.

Nakonec jsem přišel na čisté řešení ve formátu HTML , který nevyžaduje žádnou JavaScript , pracuje v moderních prohlížečích (s výjimkou IE, tam museli alespoň jeden úlovek, ne?), A nevyžaduje, abyste zakázat automatické dokončování pro celý formulář.

Prostě vypnout automatické dokončování na forma poté jej pro všechny inputChcete se do práce v rámci formuláře. Například:

<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>
Odpovězeno 15/08/2013 v 20:02
zdroj uživatelem

hlasů
16

Myslím, že autocomplete=offje uložen ve formátu HTML 5.

Zeptejte se sami sebe, proč chcete to udělat i když - to může mít smysl v některých situacích, ale nedělají to jen kvůli, jak to udělat.

Je to méně pohodlné pro uživatele a dokonce ani bezpečnostní problém v OS X (uvedlo Soren níže). Pokud máte obavy o lidi s jejich hesla ukradeno na dálku - stisk klávesy logger mohl ještě udělat, i když vaše aplikace používá autcomplete=off.

Jako uživatel, který se rozhodne mít prohlížeč zapamatovat (většina) mých informací, tak bych to nepříjemné, pokud vaše stránky nepamatoval důl.

Odpovězeno 24/02/2011 v 00:24
zdroj uživatelem

hlasů
16

My jsme vlastně používat sasb je nápad na jedné stránce. Jednalo se o lékařský software webové aplikace spouštět ordinaci. Nicméně, mnoho z našich zákazníků byli lékaři, kteří používají mnoho různých pracovních stanic, včetně semi-veřejných terminálů. Takže oni chtěli, aby se ujistil, že lékař, který nerozumí důsledky hesel auto-uloženy nebo nedával pozor nemohou náhodně opustit své přihlašovací údaje snadno přístupné. Samozřejmě, že to bylo před myšlenkou soukromého prohlížení, která se začíná být vystupoval v IE8, FF3.1, atd. Dokonce tak, mnoho lékařů jsou nuceni používat staré školní prohlížečů v nemocnicích se říká, že se nezmění.

Takže jsme měli přihlašovací stránka generování náhodných názvy polí, které bude pracovat pouze pro toto místo. Ano, je to méně pohodlné, ale je to jen bít uživatel přes hlavu asi není ukládání přihlašovací údaje o veřejných terminálů.

Odpovězeno 16/09/2008 v 16:35
zdroj uživatelem

hlasů
16

Na související nebo dokonce na úplně opačné poznámky -

„Pokud jste uživateli výše uvedeného formuláře a chcete znovu povolit funkci automatického dokončování, použít‚pamatovat heslo‘bookmarklet z této stránky Bookmarklets . To odstraní všechny autocomplete="off"atributy ze všech formulářů na stránce. Udržujte bojovat dobrý boj! "

Odpovězeno 08/09/2008 v 20:29
zdroj uživatelem

hlasů
13

Byla to nestandardní způsob, jak to udělat (myslím, že Mozilla a Internet Explorer je stále podporuje), ale hrát s očekáváním uživatelů je špatný nápad.

někdo v případě, že uživatel zadá své údaje o kreditní kartě ve formě a pak pojďme ještě používat tento prohlížeč to není vaše starost. :)

Odpovězeno 05/08/2008 v 17:26
zdroj uživatelem

hlasů
10

přidání

autocomplete="off"

ke značce formuláře bude zakázat automatické dokončování prohlížeče (to, co bylo dříve zadaný do tohoto pole) ze všech inputoblastí v rámci dané podobě.

Testováno na:

  • Firefox 3.5, 4 BETA
  • Internet Explorer 8
  • chróm
Odpovězeno 11/02/2011 v 06:14
zdroj uživatelem

hlasů
9

Přidávání autocomplete="off"se nebude rozseká ji.

Změnit typ vstupu atribut type="search".
Google se nevztahuje automatické vyplňování na vstupy s typem vyhledávání.

Odpovězeno 28/10/2015 v 16:32
zdroj uživatelem

hlasů
9

Aby se zabránilo neplatné XHTML můžete nastavit tento atribut pomocí Javascriptu. Příklad použití jQuery:

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

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

Problém je v tom, že uživatelé bez JavaScriptu bude mít funkci automatického doplňování.

Odpovězeno 12/12/2010 v 19:34
zdroj uživatelem

hlasů
8

Nemůžu uvěřit, že je to stále problém, tak dlouho poté, co byla hlášena. Výše uvedené řešení nefunguje pro mě, jako safari zdálo vědět, kdy byl tento prvek není zobrazen nebo mimo obrazovku, nicméně následující udělal práci za mě:

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

Doufáme, že je užitečné pro někoho!

Odpovězeno 23/04/2016 v 11:02
zdroj uživatelem

hlasů
8

Trochu pozdě na hru ... ale já jsem narazil na tento problém obejít a vyzkoušeli několik poruch, ale tahle práce pro mě našel na MDN

V některých případech bude prohlížeč držet naznačuje hodnoty automatické doplňování, i když je atribut autocomplete vypnuta. Toto neočekávané chování může být docela matoucí pro vývojáře. Trik opravdu vynutit no-dokončení je přiřadit náhodný řetězec atributu jako tak:

autocomplete="nope"
Odpovězeno 22/03/2016 v 19:38
zdroj uživatelem

hlasů
8

Jedná se o bezpečnostní problém, který prohlížečů ignorovat teď. Prohlížeče identifikovat a obsah obchody s použitím jména vstupních, i když vývojáři považuje informace jsou citlivé a mělo by neměly být skladovány. Takže vstupní název odlišný od 2 žádostí vyřeší problém (ale budou i nadále uloženy v paměti cache prohlížeče a také zvýší mezipaměť prohlížeče). Požádejte uživatele, aby aktivovat nebo deaktivovat možností v nastavení svého prohlížeče není dobré řešení. Problém může být vyřešen v backend.

Tady je moje řešení. Přístup, který jsem implementoval ve svém rámci. Všechny automatického doplňování prvky jsou generovány pomocí skrytého vstupu takto:

<? $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>

Server pak proces poštovních proměnných, jako je tento:

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

Tato hodnota může být zobrazena jako obvykle

var_dump($_POST['username']);

A prohlížeč nebude moci navrhnout informace z předchozího požadavku nebo z dřívějších uživatelů.

Všechny funguje jako kouzlo, a to i v případě aktualizace prohlížečů, chcete ignorovat dokončování či nikoliv. To byl nejlepší způsob, jak vyřešit problém pro mě.

Odpovězeno 02/06/2015 v 20:37
zdroj uživatelem

hlasů
8

pokusit i ty, jestli prostě autocomplete="off"nefunguje:

autocorrect="off" autocapitalize="off" autocomplete="off"
Odpovězeno 04/12/2012 v 19:24
zdroj uživatelem

hlasů
8

Používají nestandardní název a ID pro pole, takže spíše než „name“ mít „name_“. Prohlížeče se pak nevidí to jako název pole. Nejlepší na tom je, že to lze udělat, aby se některé, ale ne ve všech oblastech, a to bude automatické doplňování některé, ale ne ve všech oblastech.

Odpovězeno 05/08/2008 v 17:27
zdroj uživatelem

hlasů
7

Žádný z rozsekává zde uvedených pracoval pro mě v Chrome. Tam je diskuse o problematice zde: https://code.google.com/p/chromium/issues/detail?id=468153#c41

Přidání této uvnitř <form>prací (alespoň prozatím):

<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>
Odpovězeno 02/07/2015 v 10:40
zdroj uživatelem

hlasů
6

Nejlepším řešením:

Zabránění automatického doplňování uživatelské jméno (nebo e-mail) a heslo:

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

Automatické dokončování zabránit pole:

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

Vysvětlení: autocompletenadále pracovat <input>, autocomplete="off"nefunguje, ale můžete změnit offna náhodný řetězec, jako je nope.

Pracuje v:

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

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

Odpovězeno 20/03/2018 v 04:31
zdroj uživatelem

hlasů
6

Pokusu o přidání

jen pro čtení OnFocus = "this.removeAttribute ( 'jen pro čtení');"

navíc

automatické doplňování = "off"

na vstup (y), které nechcete mít na paměti, data z formuláře ( username, password, atd), jak je uvedeno níže:

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

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

Testováno na nejnovějších verzí hlavních prohlížečů, tj Google Chrome, Mozilla Firefox, Microsoft Edge, atd. A pracuje bez problémů. Snad to pomůže...

Odpovězeno 01/11/2017 v 13:26
zdroj uživatelem

hlasů
6

To funguje pro mě.

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

Můžeme také použít tuto strategii v jiných ovládacích prvků, jako je text, vyberte etc

Odpovězeno 30/12/2016 v 15:05
zdroj uživatelem

hlasů
5

Tak tady to je:

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

Odpovězeno 29/05/2016 v 19:57
zdroj uživatelem

hlasů
5

Můžete použít na vstupu.

Například;

<input type=text name="test" autocomplete="off" />
Odpovězeno 02/11/2012 v 18:00
zdroj uživatelem

hlasů
4

Můžete jednoduše položí autocomplete="off"do HTML oblastech, jako je následující kód.

<input type="text" name="" value="" autocomplete="off" />
Odpovězeno 12/05/2016 v 10:53
zdroj uživatelem

hlasů
4

Můžete zakázat automatické dokončování, pokud odstranit formznačku, totéž se stalo mou bankou a byl jsem zvědav, jak to udělali. Je dokonce odstranit hodnotu, která byla už pamatoval prohlížečem po odebrání tagu.

Odpovězeno 25/02/2016 v 15:27
zdroj uživatelem

hlasů
4

Chrome se plánuje podporovat toto .

Pro tuto chvíli to nejlepší návrh je použít typ vstupu, který je zřídka automaticky dokončené.

chrom diskuze

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

aby byly kompatibilní s firefox, použít normální autocomplete = ‚off‘

<input type='search' name="whatever" autocomplete='off' />
Odpovězeno 10/12/2015 v 02:21
zdroj uživatelem

hlasů
3

Mnoho moderních prohlížečů nepodporují automatického doplňování = „off“ přihlašovacího pole už ne. autocomplete="new-password"Je wokring místo, bližší informace MDN dokumenty

Odpovězeno 21/12/2017 v 04:33
zdroj uživatelem

hlasů
3

Používám to TextMode="password" autocomplete="new-password"a na načtení stránky v aspxtxtPassword.Attributes.Add("value", '');

Odpovězeno 14/03/2017 v 09:35
zdroj uživatelem

hlasů
3

Můj problém byl většinou autofill s Chrome, ale myslím, že to je asi problematičtější než automatického doplňování.

Trik: pomocí časovače resetovat formulář a nastavit pole hesla do prázdné. Doba trvání 100 ms se zdá být minimální, aby mohla fungovat.

$(document).ready(function() {
    setTimeout(function() {
        var $form = $('#formId');
        $form[0].reset();
        $form.find('INPUT[type=password]').val('');
    }, 100);
});
Odpovězeno 12/07/2016 v 15:29
zdroj uživatelem

hlasů
3

Odpověď dsuess vyslán s ReadOnly byl velmi chytrý a pracoval. Ale jak jsem pomocí boostrap je jen pro čtení vstupní pole - dokud se zaměřil - označeny šedým pozadím. Zatímco zatížení dokumentů, můžete trik prohlížeč pouhým zamknutí a odemknutí vstup.

Tak jsem dostal nápad zavést toto řešení do jQuery:

    jQuery(document).ready(function () {
        $("input").attr('readonly', true);
        $("input").removeAttr('readonly');
   });
Odpovězeno 16/06/2016 v 10:43
zdroj uživatelem

hlasů
3

Pokud je váš problém, který má pole hesla bytost auto-dokončení, pak si může najít to užitečný ...

Měli jsme tento problém v některých oblastech našich stránek, kde se obchoduje chtěli znovu dotaz uživatele k jejich uživatelským jménem a heslem a specificky nechtěl heslo autofill pracovat smluvních důvodů. Zjistili jsme, že nejjednodušší způsob, jak to udělat, je dát do falešné poli heslo pro prohlížeč najít a naplnit zatímco skutečný pole heslo zůstává nedotčen.

<!-- 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" />

Všimněte si, že ve Firefoxu a IE, to bylo prostě dost, aby žádný vstup typu hesla před samotným jednoho, ale Chrome prohlédl to a přinutil mě skutečně jmenovat falešné zadání hesla (tím, že jí zřejmou heslo id), aby si ji "kousat". Použil jsem třídu implementovat styl namísto vložený styl a tak se snaží, aby v případě, že výše nefunguje z nějakého důvodu.

Odpovězeno 27/04/2016 v 20:44
zdroj uživatelem

hlasů
3

To je to, co jsme nazvali automatické doplňování z textového pole. zadejte popis obrázku zde Můžeme zakázat automatické dokončování o textové pole ve 2 ways-

  1. Prohlížečem Label
  2. podle kodexu

    Chcete-li zakázat v prohlížeči přejděte na nastavení

    Na dissable v procházení přejděte na nastavení

Přejít k postupu nastavení a zrušte zaškrtnutí políčka a potom obnovit.

Přejít k postupu nastavení a zrušte zaškrtnutí políčka a potom obnovit.

Chcete-li vypnout kódování štítek můžete dělat, co se následné
použití AutoCompleteType="Disabled":

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

Nastavením formulář autocomplete="off":

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

Nastavením formulář autocomplete="off":

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

Pomocí kódu na straně .cs

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


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

    }  
}  

Pomocí 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>  
Odpovězeno 19/03/2016 v 05:05
zdroj uživatelem

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

</script>
Odpovězeno 16/11/2015 v 13:02
zdroj uživatelem

hlasů
2

Pokud chcete, aby se zabránilo společné prohlížeče plug-in LastPassz automatické vyplňování pole také můžete přidat atribut data-lpignore="true"přidá k ostatním návrhům na toto vlákno. Všimněte si, že to neplatí jen na pole hesla.

<input type="text" autocomplete="false" data-lpignore="true" />

Snažil jsem se udělat to samé, zatímco zpět, a byl poražen, protože žádný z návrhů, které jsem našel pracoval pro mě. Ukázalo se to LastPass.

Odpovězeno 21/11/2018 v 23:06
zdroj uživatelem

hlasů
2

Jsem vyřešil nekonečný boj s Google Chrome s použitím náhodných znaků.

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

Doufáme, že to pomůže jiným lidem.

Odpovězeno 04/08/2018 v 14:22
zdroj uživatelem

hlasů
2

Google Chrome ignoruje autocomplete="off"atribut některých vstupů, včetně hesel vstupů a společných vstupů zjištěných podle názvu.

Například, pokud máte vstup s názvem address, pak Chrome bude poskytovat návrhy automatického vyplňování z adres zadaných na jiných stránkách, i když si to říct, aby :

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

Pokud si nechcete Chrome to udělat, pak si můžete přejmenovat nebo oboru názvů název pole formuláře je:

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

Pokud vám nevadí, že automaticky doplní hodnoty, které byly dříve zadány na svých stránkách, pak si můžete nechat automatické dokončování povoleno. Jmenného prostoru název pole by mělo stačit, aby se zabránilo hodnoty pamatoval z jiných stránek z objevit.

<input type="string" name="mysite_addr" autocomplete="on">
Odpovězeno 22/06/2018 v 06:10
zdroj uživatelem

hlasů
2

Nezdá se, že aby bylo možné dosáhnout bez použití bočního kombinace klient i server side kód.

Aby se ujistil, že uživatel musí vyplnit formulář pokaždé bez automatického doplňování I použít následující postupy:

  1. Generovat názvy polí formuláře na serveru a používat skryté vstupní pole pro ukládání těchto jmen, takže pokud jsou předloženy k serveru na straně serveru kódu lze použít generované názvy pro přístup k hodnoty pole. To je zastavení uživatele od nutnosti možnost automatického vyplnění polí.

  2. Umístěte tři instance každé pole formuláře na formuláři a skrýt první a poslední pole každého souboru pomocí CSS a zakázat jim po načtení stránky pomocí JavaScriptu. To je, aby se zabránilo prohlížeč od automatické vyplňování polí.

Zde je podfuk, který demonstruje JavaScript, CSS a HTML, jak je popsáno v # 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>

Zde je hrubý příklad toho, co je kód serveru pomocí ASP.NET s břitvou by usnadnit # 1

Modelka:

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

ovladač:

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);
    }
}

Pohled:

@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">
}
Odpovězeno 28/02/2017 v 10:25
zdroj uživatelem

hlasů
2

Safari nemění svůj názor ohledně automatického doplňování, pokud nastavíte autocomplete="off"dynamicky z javascriptu. Nicméně to bude respektovat, pokud to uděláte na jednotlivé oblasti základu.

$(':input', $formElement).attr('autocomplete', 'off');
Odpovězeno 01/11/2015 v 10:28
zdroj uživatelem

hlasů
2

Vím, že to je stará pošta, ale to mohlo být důležité vědět, že Firefox (myslím, že pouze prohlížeč Firefox) používá hodnotu s názvem ismxfilled, který v podstatě nutí automatické doplňování.

ismxfilled="0" pro OFF

nebo

ismxfilled="1" pro ON

Odpovězeno 13/08/2015 v 18:22
zdroj uživatelem

hlasů
1

Zkuste to :

<input type='text' autocomplete='off' />
Odpovězeno 27/05/2017 v 08:13
zdroj uživatelem

hlasů
1

Chtěl bych objasnit, že tato odpověď je pro úplnost a znalostí komunity, v žádném případě se nedoporučuje.

S ohledem na aplikaci Internet Explorer 11, tam je funkce zabezpečení v místě, které mohou být použity k blokování automatické doplňování. Funguje to takto:

Jakákoli forma vstupu hodnota, která je upravena v JavaScriptu poté, co uživatel již vstoupila je označen jako nezpůsobilý pro automatické dokončování.

Tato funkce se obvykle používá k ochraně uživatelů před škodlivými webovými stránkami, které chtějí po jeho nebo podobně zadat heslo změnit.

Nicméně, můžete vložit jeden speciální znak na začátku hesla řetězce blokovat automatické doplňování. Tato speciální znak mohly být detekovány a odstraněny později dolů potrubí.

Odpovězeno 17/11/2016 v 17:41
zdroj uživatelem

hlasů
1

Řešení není k vložení pole hesla do DOM, než chce uživatel změnit heslo. To může být použitelné v určitých případech:

V našem systému máme pole hesla, které ve straně administrátora, takže se musíme vyhnout nechtěnému zadávání hesel ostatních uživatelů. Formulář má navíc políčko, které bude přepínat viditelnost pole heslo z tohoto důvodu.

Takže v tomto případě, autofill ze správce hesel stává double problém, protože vstupní ani nebude pro uživatele viditelné.

Řešením bylo mít políčko spoušť, zda je pole pro heslo vloženou do DOM, ne pouze jeho viditelnost.

Implementace Pseudo pro angularjs:

<input type="checkbox" ng-model="createPassword">
<input ng-if="changePassword" type="password">
Odpovězeno 24/10/2016 v 09:16
zdroj uživatelem

hlasů
1

I použít následující jQuery úryvek:

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

A než jen $('#login-form input').preventAutocomplete();

Odpovězeno 02/09/2016 v 10:14
zdroj uživatelem

hlasů
0

To pro mě pracoval jako kouzlo.

  1. Nastavte atribut automatického doplňování formuláře na off
  2. Přidat fiktivní vstupní pole a nastavit jeho atribut také vypnuta.
<form autocomplete="off">
 <input type="text" autocomplete="off" style="display:none">
</form>
Odpovězeno 17/12/2018 v 06:39
zdroj uživatelem

hlasů
0

Aby se zabránilo prohlížeč automaticky naplní uložených přihlašovacích stránek pověření uživatele, místo pole pro zadávání textu a heslo v horní části formuláře s neprázdných hodnot a ve stylu „pozice: absolutní; nahoře: -999px; zleva: -999px“ nastaven jako skrytý pole.

<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>

Je důležité, aby textové pole předcházet pole hesla. V opačném případě se auto výplně nesmí být bráněno v některých případech.

Je důležité, že hodnota obou textových polí a heslo nesmí být prázdné, aby se zabránilo výchozí hodnoty před přepsáním v některých případech.

Je důležité, aby tyto dvě pole jsou před „skutečnou“ typu password pole (y) ve formě.

U novějších prohlížečů, které jsou html 5,3 vyhovující hodnotu atributu automatického doplňování „new-password“ by měl fungovat.

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

Kombinace obou metod mohou být použity na podporu starší i novější prohlížeč.

<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>
Odpovězeno 07/07/2018 v 18:20
zdroj uživatelem

hlasů
0

K vyřešení tohoto problému, jsem použil některé CSS triky a tyto práce pro mě.

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

Přečtěte si tento článek pro další podrobnosti.

Odpovězeno 11/05/2018 v 13:19
zdroj uživatelem

hlasů
0

Byl jsem schopen přestat Chrome 66 z autofilling přidáním dvou falešné vstupy a dát jim pozici absolutní:

<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" />

Zpočátku jsem se snažil přidat display:none;ke vstupům ale Chrome je ignoroval a automaticky vyplněných ty viditelné.

Odpovězeno 08/05/2018 v 22:07
zdroj uživatelem

hlasů
0

Žádné falešné vstupy, no javascript!

Neexistuje žádný způsob, jak to vypnout vyplňování konzistentně prohlížečů. Zkoušel jsem všechny různé návrhy a žádný z nich pracuje ve všech prohlížečích. Jediný způsob, jak se nepoužívá pro zadání hesla vůbec. Tady je to, co jsem přišel s:

<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" />

Download: password-dots.woff2

Zde je návod, jak můj konečný výsledek vypadá takto:

Password Mask

Negativní vedlejším účinkem je, že je možné kopírovat prostý text ze vstupu, ačkoli by mělo být možné, aby se zabránilo, že s některými JS.

Odpovězeno 13/04/2018 v 06:35
zdroj uživatelem

hlasů
0

Konečně jsem se dostal roztok nejprve přidat 2 skrytých textových polí

a stačí přidat úhlovou směrnici takhle

 (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();
            });
        }
    }
})()

pak ji použít v textovém poli, kde je třeba, aby se zabránilo automatické vyplňování

    <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>

Poznámka: nezapomeňte zahrnout jQuery a nastavte type ="text"zpočátku

Odpovězeno 26/03/2018 v 12:07
zdroj uživatelem

hlasů
0

Můžete také použít namísto vstupu přeskočit automatického doplňování část.

Odpovězeno 19/03/2018 v 12:18
zdroj uživatelem

hlasů
0

Můžete použít autocomplete = off ve vstupní kontroly, aby se zabránilo automatické dokončování

Například:

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

v případě, že výše uvedený kód nefunguje, zkuste přidat tyto atributy autocapitalize = „off“ automatické dokončování = „off“

Odpovězeno 03/03/2018 v 00:47
zdroj uživatelem

hlasů
0

Můžete použít autocomplete = off ve vstupní kontroly, aby se zabránilo automatické dokončování

Například:

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

v případě, že výše uvedený kód není práce pak zkuste přidat tyto atributy také

autocapitalize = "off" automatické doplňování = "off"

nebo

Změnit input type atribut type = "hledat". Google se nevztahuje automatické vyplňování na vstupy s typem vyhledávání.

Odpovězeno 03/03/2018 v 00:35
zdroj uživatelem

hlasů
0

Pevný. Stačí přidat výše skutečného vstupního pole

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 - medium testován na EDGE, Chrome (poslední v63), Firefox Quantum (57.0.4 64 бит), Firefox (52.2.0) falešné pole jsou řešení pro chrom / operní automatické vyplňování dostat špatné polí

 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'
      ... 
    />
Odpovězeno 19/01/2018 v 12:57
zdroj uživatelem

hlasů
0

Žádná z uvedených odpovědí pracoval na všech prohlížečích I testovány. V návaznosti na již poskytnuté odpovědi, to je to, co jsem skončil s (testováno) na Chrome 61 , Microsoft Edge 40 (EdgeHTML 15), IE 11 , Firefox 57 , Opera 49 a Safari 5.1 . Je to nezvyklý v důsledku mnoha studiích; nicméně to není práce pro mě.

<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>
Odpovězeno 22/11/2017 v 08:28
zdroj uživatelem

hlasů
0

autocomplete = ‚off‘ to není práce pro mě, tak jako tak i nastavit hodnotu atributu vstupního pole do prostoru, tj <input type='text' name='username' value=" ">, že nastavit výchozí vstupní charakter prostoru, a protože uživatelské jméno zůstalo prázdné heslo bylo příliš vymazány.

Odpovězeno 12/03/2017 v 19:17
zdroj uživatelem

hlasů
-14

Proč byste, aby vaše informace o autorovi život méně pohodlné?

„Hesla / kreditní karty data / atd by neměl být uložen“ Je to špatný argument: s automatickým doplňováním o, prohlížeče v těchto hodnotách Mac OS X ukládání v šifrované databázi s oprávněními jednotlivých aplikací. A naopak, co je reálný vliv autocomplete=off? Uživatel bude psát to v nešifrované textového souboru, nebo ještě lépe, na post-it poznámka připojena k obrazovce.

Ještěže je tu bookmarklets jako ten Antti výše, a záplaty, aby se motor ignorovat atribut úplně .

Vážně, naléhavě vás žádám, aby přehodnotila používání tohoto atributu. To není prospěch kohokoliv.

Odpovězeno 08/09/2008 v 20:42
zdroj uživatelem

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