Chrome automatisch aanvullen uitschakelen

Ik heb problemen ondervonden met het automatisch invullen van Chrome op verschillende formulieren.

De velden in het formulier hebben allemaal zeer gebruikelijke en nauwkeurige namen, zoals “e-mail”, “naam” of “wachtwoord”, en ze hebben ook autocomplete="off" ingesteld.

De vlag voor automatisch aanvullen heeft het gedrag van automatisch aanvullen uitgeschakeld, waarbij een vervolgkeuzelijst met waarden wordt weergegeven terwijl u begint te typen, maar heeft de waarden niet gewijzigd waarmee Chrome de velden automatisch invult.

Dit gedrag zou goed zijn, behalve dat Chrome de invoer onjuist vult, bijvoorbeeld de telefooninvoer met een e-mailadres. Klanten hebben hierover geklaagd, dus het is geverifieerd dat het in meerdere gevallen voorkomt, en niet als een of ander resultaat van iets dat ik lokaal op mijn computer heb gedaan.

De enige huidige oplossing die ik kan bedenken, is om dynamisch aangepaste invoernamen te genereren en vervolgens de waarden in de backend te extraheren, maar dit lijkt een behoorlijk hackachtige manier om dit probleem te omzeilen. Zijn er tags of eigenaardigheden die het gedrag van automatisch aanvullen wijzigen en die kunnen worden gebruikt om dit op te lossen?


Antwoord 1, autoriteit 100%

Jan 2021: autocomplete="off" werkt nu zoals verwacht (getest op Chrome 88 macOS).

Om dit te laten werken, moet u ervoor zorgen dat uw invoertag zich in een Form-tag bevindt


September 2020: autocomplete="chrome-off" schakelt automatisch aanvullen van Chrome uit.


Oorspronkelijk antwoord, 2015:

Voor nieuwe Chrome-versies kun je gewoon autocomplete="new-password" in je wachtwoordveld zetten en dat is alles. Ik heb het gecontroleerd, werkt prima.

Kreeg die tip van Chrome-ontwikkelaar in deze discussie:
https://bugs.chromium.org/p/chromium/issues /detail?id=370363#c7

P.S. Houd er rekening mee dat Chrome zal proberen het gedrag voor automatisch aanvullen af ​​te leiden uit naam, id en eventuele tekstinhoud die het veld kan omringen, inclusief labels en willekeurige tekstknooppunten. Als er een autocomplete-token zoals street-address in de context staat, vult Chrome dat automatisch als zodanig in. De heuristiek kan nogal verwarrend zijn, omdat deze soms alleen wordt geactiveerd als er extra velden in het formulier zijn, of niet als er te weinig velden in het formulier zijn. Merk ook op dat autocomplete="no" lijkt te werken, maar autocomplete="off" niet om historische redenen. autocomplete="no" vertelt u de browser dat dit veld automatisch moet worden ingevuld als een veld met de naam "no". Als u unieke willekeurige autocomplete-namen genereert, schakelt u automatisch aanvullen uit.

Als uw gebruikers slechte formulieren hebben bezocht, kan hun informatie voor automatisch aanvullen corrupt zijn. Het kan een noodzakelijke actie van ze zijn om ze handmatig naar binnen te laten gaan en hun gegevens voor automatisch aanvullen in Chrome te corrigeren.


Antwoord 2, autoriteit 73%

Ik heb zojuist ontdekt dat als je een onthouden gebruikersnaam en wachtwoord voor een site hebt, de huidige versie van Chrome je gebruikersnaam/e-mailadres automatisch invult in het veld vóór een type=password veld. Het maakt niet uit hoe het veld wordt genoemd – we gaan er gewoon van uit dat het veld voordat het wachtwoord je gebruikersnaam wordt.

Oude oplossing

Gebruik gewoon <form autocomplete="off"> en het voorkomt dat wachtwoorden vooraf worden ingevuld, evenals elke vorm van heuristisch invullen van velden op basis van veronderstellingen die een browser kan maken (die vaak verkeerd zijn ). In tegenstelling tot het gebruik van <input autocomplete="off"> wat vrijwel genegeerd lijkt te worden door het automatisch invullen van het wachtwoord (in Chrome houdt Firefox zich hieraan dus).

Bijgewerkte oplossing

Chrome negeert nu <form autocomplete="off">. Daarom is mijn oorspronkelijke oplossing (die ik had verwijderd) nu een rage.

Maak eenvoudig een paar velden aan en verberg ze met “display:none”. Voorbeeld:

<!-- fake fields are a workaround for chrome autofill getting the wrong fields -->
<input style="display: none" type="text" name="fakeusernameremembered" />
<input style="display: none" type="password" name="fakepasswordremembered" />

Plaats dan je echte velden eronder.

Vergeet niet om de opmerking toe te voegen, anders zullen andere mensen in je team zich afvragen wat je aan het doen bent!

Update maart 2016

Zojuist getest met de nieuwste Chrome – allemaal goed. Dit is nu een vrij oud antwoord, maar ik wil alleen vermelden dat ons team het al jaren gebruikt voor tientallen projecten. Het werkt nog steeds geweldig ondanks een paar opmerkingen hieronder. Er zijn geen problemen met toegankelijkheid omdat de velden display:none zijn, wat betekent dat ze geen focus krijgen. Zoals ik al zei, moet je ze vóór je echte velden plaatsen.

Als je javascript gebruikt om je formulier aan te passen, heb je een extra trucje nodig. Laat de nepvelden zien terwijl je het formulier manipuleert en verberg ze een milliseconde later weer.

Voorbeeldcode met jQuery (ervan uitgaande dat u uw nepvelden een klasse geeft):

$(".fake-autofill-fields").show();
// some DOM manipulation/ajax here
window.setTimeout(function () {
  $(".fake-autofill-fields").hide();
}, 1);

Update juli 2018

Mijn oplossing werkt niet meer zo goed sinds de anti-usability-experts van Chrome hard aan het werk zijn geweest. Maar ze hebben ons een bot toegeworpen in de vorm van:

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

Dit werkt en lost het probleem grotendeels op.

Het werkt echter niet als je geen wachtwoordveld hebt, maar alleen een e-mailadres. Dat kan ook moeilijk zijn om te stoppen met geel worden en voorvullen. De nep-veldenoplossing kan worden gebruikt om dit op te lossen.

In feite moet je soms twee nepvelden invoeren en ze op verschillende plaatsen proberen. Ik had bijvoorbeeld al valse velden aan het begin van mijn formulier, maar Chrome begon onlangs mijn veld ‘E-mail’ opnieuw in te vullen – dus toen verdubbelde ik en plaatste ik meer nepvelden net voor het veld ‘E-mail’, en dat loste het op . Het verwijderen van de eerste of tweede partij van de velden keert terug naar onjuist overijverig automatisch aanvullen.

Update maart 2020

Het is niet duidelijk of en wanneer deze oplossing nog steeds werkt. Het lijkt soms nog steeds te werken, maar niet altijd.

In de reacties hieronder vind je een paar hints. Een die zojuist is toegevoegd door @anilyeni is misschien wat meer onderzoek waard:

Zoals ik heb opgemerkt, werkt autocomplete="off" in Chrome 80, als er minder dan drie elementen zijn in <form>. Ik weet niet wat de logica is of waar de gerelateerde documentatie hierover is.

Ook deze van @dubrox kan relevant zijn, hoewel ik het niet heb getest:

heel erg bedankt voor de truc, maar werk het antwoord bij, want display:none; werkt niet meer, maar position: fixed;top:-100px;left:-100px; width:5px; doet 🙂

Update APRIL 2020

Speciale waarde voor chrome voor dit attribuut doet het werk: (getest op invoer – maar niet door mij)
autocomplete="chrome-off"


Antwoord 3, autoriteit 26%

Na maanden en maanden strijd heb ik ontdekt dat de oplossing een stuk eenvoudiger is dan je je kunt voorstellen:

Gebruik in plaats van autocomplete="off" autocomplete="false" 😉

Zo simpel is het, en het werkt ook als een tierelier in Google Chrome!


Update van augustus 2019 (met dank aan @JonEdiger in opmerkingen)

Opmerking: veel informatie online zegt dat de browsers autocomplete=’false’ nu behandelen als hetzelfde als autocomplete=’off’. In ieder geval vanaf dit moment verhindert het automatisch aanvullen voor die drie browsers.

Stel het in op formulierniveau en voor de invoer die je wilt uitschakelen, stel het in op een ongeldige waarde zoals ‘none’:

<form autocomplete="off"> 
  <input type="text" id="lastName" autocomplete="none"/> 
  <input type="text" id="firstName" autocomplete="none"/>
</form>

Antwoord 4, autoriteit 12%

Soms kan zelfs autocomplete=off niet voorkomen dat gegevens in verkeerde velden worden ingevuld.

Een tijdelijke oplossing is om automatisch aanvullen in de browser uit te schakelen met de alleen-lezen-modus en schrijfbaar in te stellen op focus:

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

De gebeurtenis focus vindt plaats bij muisklikken en bladeren door velden.

Bijwerken:

Mobile Safari zet de cursor in het veld, maar toont geen virtueel toetsenbord. Deze nieuwe oplossing werkt als voorheen, maar werkt met virtueel toetsenbord:

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

Live demo https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Uitleg: Browser vult automatisch inloggegevens in het verkeerde tekstveld in?

de invoer onjuist invullen, bijvoorbeeld de telefooninvoer met een e-mailadres invullen

Soms merk ik dit vreemde gedrag in Chrome en Safari, wanneer er wachtwoordvelden in dezelfde vorm zijn. Ik denk dat de browser naar een wachtwoordveld zoekt om uw opgeslagen inloggegevens in te voeren. Dan vult het gebruikersnaam automatisch in het dichtstbijzijnde tekstlike-input-veld , dat vóór het wachtwoordveld in DOM verschijnt (gewoon gissen vanwege observatie). Aangezien de browser de laatste instantie is en u deze niet kunt controleren,

Deze alleen-lezen-fix hierboven werkte voor mij.


Antwoord 5, autoriteit 8%

Als u een zoekvakfunctie implementeert, probeer dan het kenmerk type als volgt in te stellen op search:

<input type="search" autocomplete="off" />

Dit werkt voor mij op Chrome v48 en lijkt legitieme opmaak te zijn:

https://www.w3.org/wiki/HTML/Elements/ invoeren/zoeken


Antwoord 6, autoriteit 6%

Probeer dit eens. Ik weet dat de vraag wat oud is, maar dit is een andere benadering van het probleem.

Ik merkte ook dat het probleem net boven het veld password staat.

Ik heb beide methoden geprobeerd, zoals

<form autocomplete="off"> en <input autocomplete="off"> maar geen van beide werkte voor mij.

Dus ik heb het opgelost met behulp van het onderstaande fragment – ik heb zojuist nog een tekstveld toegevoegd net boven het veld voor het wachtwoordtype en het display:none gemaakt.

Zoiets:

<input type="text" name="prevent_autofill" id="prevent_autofill" value="" style="display:none;" />
<input type="password" name="password_fake" id="password_fake" value="" style="display:none;" />
<input type="password" name="password" id="password" value="" />

Ik hoop dat het iemand zal helpen.


Antwoord 7, autoriteit 6%

Ik weet niet waarom, maar dit hielp en werkte voor mij.

<input type="password" name="pwd" autocomplete="new-password">

Ik heb geen idee waarom, maar autocomplete=”new-password” schakelt automatisch aanvullen uit. Het werkte in de nieuwste 49.0.2623.112 chrome-versie.


Antwoord 8, autoriteit 5%

Voor mij simpel

<form autocomplete="off" role="presentation">

Het is gelukt.

Getest op meerdere versies, laatste poging was op 56.0.2924.87


Antwoord 9, autoriteit 3%

U moet dit kenmerk toevoegen:

autocomplete="new-password"

Bronlink: Volledig artikel


Antwoord 10, autoriteit 2%

Het is zo eenvoudig en lastig 🙂

google chrome zoekt in principe naar elk eerste zichtbare wachtwoordelement in de <form>, <body> en <iframe>-tags om automatisch aanvullen voor hen in te schakelen, dus om dit uit te schakelen, moet u een dummy-wachtwoordelement als volgt toevoegen:

    • als uw wachtwoordelement in een <form>-tag staat, moet u het dummy-element als eerste element in uw formulier onmiddellijk na <form> tag openen

    • als uw wachtwoordelement niet in een <form>-tag staat, plaatst u het dummy-element als het eerste element in uw html-pagina onmiddellijk na <body> tag openen

  1. Je moet het dummy-element verbergen zonder css display:none te gebruiken, dus gebruik in feite het volgende als een dummy-wachtwoordelement.

    <input type="password" style="width: 0;height: 0; visibility: hidden;position:absolute;left:0;top:0;"/>
    

Antwoord 11, autoriteit 2%

Hier zijn mijn voorgestelde oplossingen, aangezien Google erop staat elke tijdelijke oplossing die mensen lijken te maken te negeren.

Optie 1 – selecteer alle tekst bij klikken

Stel de waarden van de invoer in op een voorbeeld voor uw gebruiker (bijv. [email protected]), of het label van het veld (bijv. Email) en voeg toe een klasse genaamd focus-select voor uw invoer:

<input type="text" name="email" class="focus-select" value="[email protected]">
<input type="password" name="password" class="focus-select" value="password">

En hier is de jQuery:

$(document).on('click', '.focus-select', function(){
  $(this).select();
});

Ik kan echt niet zien dat Chrome ooit met waarden knoeit. Dat zou gek zijn. Dus hopelijk is dit een veilige oplossing.

Optie 2 – stel de e-mailwaarde in op een spatie en verwijder deze vervolgens

Ervan uitgaande dat u twee invoermogelijkheden hebt, zoals e-mail en wachtwoord, stelt u de waarde van het e-mailveld in op " " (een spatie) en voegt het kenmerk/waarde autocomplete="off", wis dit dan met JavaScript. U kunt de wachtwoordwaarde leeg laten.

Als de gebruiker om de een of andere reden geen JavaScript heeft, zorg er dan voor dat je de invoer aan de serverzijde inkort (waarschijnlijk zou je dat toch moeten doen), voor het geval ze de spatie niet verwijderen.

Hier is de jQuery:

$(document).ready(function() {
  setTimeout(function(){
    $('[autocomplete=off]').val('');
  }, 15);
});

Ik heb een time-out ingesteld op 15 omdat 5 af en toe leek te werken in mijn tests, dus het verdrievoudigen van dit aantal lijkt een veilige gok.

Als de beginwaarde niet wordt ingesteld op een spatie, wordt de invoer in Chrome geel, alsof deze automatisch is ingevuld.

Optie 3 – verborgen ingangen

Zet dit aan het begin van het formulier:

<!-- Avoid Chrome autofill -->
<input name="email" class="hide">

CSS:

.hide{ display:none; }

Zorg ervoor dat u de HTML-notitie bewaart, zodat uw andere ontwikkelaars deze niet verwijderen! Zorg er ook voor dat de naam van de verborgen invoer relevant is.


Antwoord 12, autoriteit 2%

Gebruik css text-security: disc zonder type=wachtwoord te gebruiken.

html

<input type='text' name='user' autocomplete='off' />
<input type='text' name='pass' autocomplete='off' class='secure' />
or
<form autocomplete='off'>
    <input type='text' name='user' />
    <input type='text' name='pass' class='secure' />
</form>

css

input.secure {
    text-security: disc;
    -webkit-text-security: disc;
}

Antwoord 13

In sommige gevallen blijft de browser waarden voor automatisch aanvullen voorstellen, zelfs als het kenmerk voor automatisch aanvullen is uitgeschakeld. Dit onverwachte gedrag kan voor ontwikkelaars behoorlijk raadselachtig zijn. De truc om de niet-automatische aanvulling echt te forceren is om een ​​willekeurige tekenreeks toe te wijzen aan het attribuut, bijvoorbeeld:

autocomplete="nope"

Antwoord 14

Ik heb geconstateerd dat het toevoegen van dit aan een formulier verhindert dat Chrome Automatisch aanvullen gebruikt.

<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>

Hier gevonden. https://code.google.com/p/chromium/issues/detail?id= 468153#hc41

Echt teleurstellend dat Chrome heeft besloten dat het beter weet dan de ontwikkelaar wanneer het automatisch moet worden aangevuld. Heeft een echt Microsoft-gevoel.


Antwoord 15

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

door het kenmerk alleen-lezen aan de tag toe te voegen en de onfocus-gebeurtenis te verwijderen, wordt het probleem opgelost


Antwoord 16

Eerder ingevoerde waarden die door chrome in de cache zijn opgeslagen, worden weergegeven als vervolgkeuzelijst. Dit kan worden uitgeschakeld door autocomplete=off , expliciet opgeslagen adres in geavanceerde instellingen van chrome geeft automatisch aanvullen pop-up wanneer een adresveld focus krijgt. Dit kan worden uitgeschakeld door autocomplete= “false”. Maar Chrome kan de waarden in de cache weergeven in de vervolgkeuzelijst.

In een html-invoerveld worden beide uitgeschakeld.

Role="presentation" & autocomplete="off"

Tijdens het selecteren van invoervelden voor automatisch aanvullen van adressen, negeert Chrome de invoervelden die geen voorafgaand label html-element hebben.

Om ervoor te zorgen dat Chrome-parser een invoerveld negeert voor het automatisch aanvullen van adres-pop-ups, kan een verborgen knop of afbeeldingsbesturingselement worden toegevoegd tussen label en tekstvak. Dit doorbreekt de chrome-parseervolgorde van het maken van een label -invoerpaar voor automatisch aanvullen.
Selectievakjes worden genegeerd tijdens het ontleden van adresvelden

Chrome houdt ook rekening met het kenmerk ‘for’ op labelelement. Het kan worden gebruikt om de parseervolgorde van chrome te doorbreken.


Antwoord 17

Voor combinaties van gebruikersnaam en wachtwoord is dit een eenvoudig op te lossen probleem. Chrome-heuristiek zoekt naar het patroon:

<input type="text">

gevolgd door:

<input type="password">

Verbreek dit proces eenvoudig door dit ongeldig te maken:

<input type="text">
<input type="text" onfocus="this.type='password'">

Antwoord 18

De door Mike Nelsons gegeven oplossing werkte niet voor mij in Chrome 50.0.2661.102 m.
Door simpelweg een invoerelement van hetzelfde type met display:none set toe te voegen, wordt het automatisch aanvullen van de native browser niet langer uitgeschakeld. Het is nu nodig om het naamattribuut te dupliceren van het invoerveld waarvoor u automatisch aanvullen wilt uitschakelen.

Ook om te voorkomen dat het invoerveld wordt gedupliceerd wanneer ze zich in een formulierelement bevinden, moet u een uitgeschakeld element plaatsen op het element dat niet wordt weergegeven. Dit voorkomt dat dat element wordt ingediend als onderdeel van de formulieractie.

<input name="dpart" disabled="disabled" type="password" style="display:none;">
<input name="dpart" type="password">
<input type="submit">

Antwoord 19

In 2016 begon Google Chrome autocomplete=off te negeren, hoewel het in W3C is. Het antwoord dat ze hebben gepost:

Het lastige hier is dat ergens tijdens de reis van het web autocomplete=off een standaard wordt voor veel formuliervelden, zonder dat er echt over nagedacht wordt of dat goed is voor gebruikers. Dit betekent niet dat er geen erg geldige gevallen zijn waarin u niet wilt dat de browser gegevens automatisch aanvult (bijvoorbeeld op CRM-systemen), maar over het algemeen beschouwen we dat als de minderheidsgevallen. En als gevolg daarvan zijn we autocomplete=off gaan negeren voor Chrome Autofill-gegevens.

Wat in wezen zegt: we weten beter wat een gebruiker wil.

Ze hebben nog een bug geopend om geldige use-cases te posten wanneer autocomplete=off is vereist

Ik heb geen problemen gezien met autocomplete in al mijn B2B-applicaties, maar alleen met de invoer van een wachtwoordtype.

Automatisch aanvullen treedt in werking als er een wachtwoordveld op het scherm staat, zelfs een verborgen veld.
Om deze logica te doorbreken, kunt u elk wachtwoordveld in zijn eigen formulier plaatsen als het uw eigen paginalogica niet verbreekt.

<input type=name >
<form>
    <input type=password >
</form>

Antwoord 20

Als je problemen hebt met het behouden van tijdelijke aanduidingen, maar het uitschakelen van automatisch aanvullen in Chrome, heb ik deze tijdelijke oplossing gevonden.

Probleem

HTML

<div class="form">
    <input type="text" placeholder="name"><br>
    <input type="text" placeholder="email"><br>
    <input type="text" placeholder="street"><br>
</div>

http://jsfiddle.net/xmbvwfs6/1/

Het bovenstaande voorbeeld levert nog steeds het probleem met automatisch aanvullen op, maar als u de required="required" en wat CSS gebruikt, kunt u de tijdelijke aanduidingen repliceren en Chrome pikt de tags niet op.

Oplossing

HTML

<div class="form">
    <input type="text" required="required">
    <label>Name</label>  
    <br>
    <input type="text" required="required">
    <label>Email</label>    
    <br>
    <input type="text" required="required">
    <label>Street</label>    
    <br>
</div>

CSS

input {
    margin-bottom: 10px;
    width: 200px;
    height: 20px;
    padding: 0 10px;
    font-size: 14px;
}
input + label {
    position: relative;
    left: -216px;
    color: #999;
    font-size: 14px;
}
input:invalid + label { 
    display: inline-block; 
}
input:valid + label { 
    display: none; 
}

http://jsfiddle.net/mwshpx1o/1/


Antwoord 21

Ik vond het echt niet leuk om verborgen velden te maken, ik denk dat het heel snel verwarrend zal worden als je het zo maakt.

Op de invoervelden die u wilt stoppen met automatisch aanvullen, werkt dit. Maak de velden alleen-lezen en verwijder dat attribuut als volgt

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

wat dit doet, is dat u eerst het alleen-lezen-attribuut moet verwijderen door het veld te selecteren en op dat moment zult u hoogstwaarschijnlijk uw eigen gebruikersinvoer invullen en de autofill om het over te nemen


Antwoord 22

Omdat we allemaal dit probleem hebben, heb ik wat tijd geïnvesteerd om een ​​werkende jQuery-extensie voor dit probleem te schrijven. Google moet html-opmaak volgen, wij volgen Google niet

(function ($) {
"use strict";
$.fn.autoCompleteFix = function(opt) {
    var ro = 'readonly', settings = $.extend({
        attribute : 'autocomplete',
        trigger : {
            disable : ["off"],
            enable : ["on"]
        },
        focus : function() {
            $(this).removeAttr(ro);
        },
        force : false
    }, opt);
    $(this).each(function(i, el) {
        el = $(el);
        if(el.is('form')) {
            var force = (-1 !== $.inArray(el.attr(settings.attribute), settings.trigger.disable))
            el.find('input').autoCompleteFix({force:force});
        } else {
            var disabled = -1 !== $.inArray(el.attr(settings.attribute), settings.trigger.disable);
            var enabled = -1 !== $.inArray(el.attr(settings.attribute), settings.trigger.enable);
            if (settings.force && !enabled || disabled)
                el.attr(ro, ro).focus(settings.focus).val("");
        }
    });
};
})(jQuery);

Voeg dit gewoon toe aan een bestand zoals /js/jquery.extends.js en voeg het toe na jQuery.
Pas het toe op elk formulierelement bij het laden van het document als volgt:

$(function() {
    $('form').autoCompleteFix();
});

jsfiddle met tests


Antwoord 23

Probeer de volgende jQuery-code die voor mij heeft gewerkt.

if ($.browser.webkit) {
    $('input[name="password"]').attr('autocomplete', 'off');
    $('input[name="email"]').attr('autocomplete', 'off');
}

Antwoord 24

Dit bestaat uit twee delen. Chrome en andere browsers onthouden eerder ingevoerde waarden voor veldnamen en geven de gebruiker op basis daarvan een lijst met automatisch aanvullen (met name invoer van wachtwoordtypes wordt nooit op deze manier onthouden, om vrij voor de hand liggende redenen). U kunt autocomplete="off" toevoegen om dit te voorkomen voor zaken als uw e-mailveld.

Je hebt dan echter wachtwoordvullers. De meeste browsers hebben hun eigen ingebouwde implementaties en er zijn ook veel hulpprogramma’s van derden die deze functionaliteit bieden. Dit kun je niet stoppen. Dit is de gebruiker die zelf de keuze maakt om deze gegevens op te slaan om later automatisch in te vullen en valt volledig buiten de reikwijdte en invloedssfeer van uw aanvraag.


Antwoord 25

Hier is een vuile hack –

U heeft hier uw element (toevoeging van het kenmerk uitgeschakeld):

<input type="text" name="test" id="test" disabled="disabled" />

En dan zet je onderaan je webpagina wat JavaScript:

<script>
    setTimeout(function(){
        document.getElementById('test').removeAttribute("disabled");
        },100);
</script>

Antwoord 26

Volgens Chromium-bugrapport #352347 Chrome niet langer respecteert autocomplete="off|false|anythingelse", noch op formulieren, noch op invoer.

De enige oplossing die voor mij werkte, was om een dummy wachtwoordveld toe te voegen:

<input type="password" class="hidden" />
<input type="password" />

Antwoord 27

Door autocomplete in te stellen op off zou hier moeten werken. Ik heb een voorbeeld dat door Google wordt gebruikt op de zoekpagina. Ik heb dit gevonden in het inspectie-element.

voer hier de afbeeldingsbeschrijving in

bewerken:
Als off niet werkt, probeer dan false of nofill. In mijn geval werkt het met Chrome-versie 48.0


Antwoord 28

Andere oplossing, op webkit gebaseerd. Zoals al vermeld, wordt de e-mail automatisch aangevuld wanneer Chrome een wachtwoordveld vindt. AFAIK, dit is ongeacht automatisch aanvullen = [wat dan ook].

Om dit te omzeilen, wijzigt u het invoertype in tekst en past u het webkit-beveiligingslettertype toe in elke gewenste vorm.

.secure-font{
-webkit-text-security:disc;}
<input type ="text" class="secure-font">

Voor zover ik kan zien is dit minstens zo veilig als invoertype=wachtwoord, het is veilig kopiëren en plakken. Het is echter kwetsbaar door de stijl te verwijderen die sterretjes verwijdert, natuurlijk kan invoertype = wachtwoord gemakkelijk worden gewijzigd in invoertype = tekst in de console om automatisch ingevulde wachtwoorden te onthullen, dus het is eigenlijk vrijwel hetzelfde.


Antwoord 29

Ik heb eindelijk succes gevonden met behulp van een textarea. Voor een wachtwoordveld is er een gebeurtenishandler die elk getypt teken vervangt door een ” “.


Antwoord 30

Ik heb hetzelfde probleem gehad. En hier is de oplossing voor het uitschakelen van automatisch invullen gebruikersnaam & wachtwoord in Chrome (alleen getest met Chrome)

    <!-- Just add this hidden field before password as a charmed solution to prevent auto-fill of browser on remembered password -->
    <input type="tel" hidden />
    <input type="password" ng-minlength="8" ng-maxlength="30" ng-model="user.password" name="password" class="form-control" required placeholder="Input password">

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes