Bir site için hatırlanan bir kullanıcı adınız ve şifreniz varsa, Chrome'un mevcut sürümünün kullanıcı adınızı / e-posta adresinizi herhangi bir alandan önceki alana otomatik olarak dolduracağını öğrendim type=password
. Alanın ne denildiği umurumda değil - sadece şifrenizin kullanıcı adınız olacağı varsayılır.
Eski Çözüm
Sadece kullanın <form autocomplete="off">
ve bir tarayıcının yapabileceği varsayımlara dayanarak (genellikle yanlış olan) her türlü sezgisel dolgunun yanı sıra parolanın doldurulmasını önler. Kullanmanın aksine <input autocomplete="off">
, şifre otomatik doldurma tarafından göz ardı ediliyor gibi görünüyor (Chrome'da, Firefox buna uyuyor).
Güncellenmiş Çözüm
Chrome artık yok sayar <form autocomplete="off">
. Bu nedenle (ki sildiğim) orijinal geçici çözümüm artık tüm öfke.
Birkaç alan oluşturun ve bunları "display: none" ile gizleyin. Misal:
<!-- 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"/>
Sonra gerçek alanlarınızı altına koyun.
Yorumunuzu eklemeyi unutmayın, yoksa ekibinizdeki diğer kişiler ne yaptığınızı merak edecektir!
Mart 2016 Güncellemesi
Sadece en son Chrome ile test edildi - hepsi iyi. Bu oldukça eski bir cevap ama sadece ekibimizin yıllardır düzinelerce projede kullandığını belirtmek istiyorum. Aşağıdaki birkaç yoruma rağmen hala harika çalışıyor. Erişilebilirlikle ilgili herhangi bir sorun yoktur, çünkü alanlar display:none
odaklanmadıkları anlamına gelir. Bahsettiğim gibi, onları gerçek alanlarınızın önüne koymanız gerekiyor .
Formunuzu değiştirmek için javascript kullanıyorsanız, ihtiyacınız olacak ekstra bir numara vardır. Formu işlerken sahte alanları gösterin ve bir milisaniye sonra tekrar gizleyin.
JQuery kullanan örnek kod (sahte alanlarınıza bir sınıf verdiğinizi varsayarsak):
$(".fake-autofill-fields").show();
// some DOM manipulation/ajax here
window.setTimeout(function () {
$(".fake-autofill-fields").hide();
},1);
Temmuz 2018 Güncellemesi
Chrome'un kullanılabilirlik önleme uzmanları iş başında olduğundan çözümüm artık çok iyi çalışmıyor. Ama bize şu şekilde bir kemik fırlattılar:
<input type="password" name="whatever" autocomplete="new-password" />
Bu işe yarar ve çoğunlukla sorunu çözer.
Ancak, şifre alanınız değil, sadece bir e-posta adresiniz olduğunda çalışmaz. Aynı zamanda sararmayı ve doldurmayı bırakmasını sağlamak da zor olabilir. Bunu düzeltmek için sahte alanlar çözümü kullanılabilir.
Aslında bazen iki sahte alan bırakmanız ve farklı yerlerde denemeniz gerekir. Örneğin, formumun başında zaten sahte alanlar vardı, ancak Chrome yakın zamanda 'E-posta' alanımı tekrar doldurmaya başladı - bu yüzden ikiye katlandım ve 'E-posta' alanından hemen önce daha fazla sahte alan koydum ve bu düzeltildi . Alanların birinci veya ikinci lotunun kaldırılması, aşırı aşırı otomatik doldurmaya geri döner.
Güncelleme Mar 2020
Bu çözümün hala çalışıp çalışmadığı ve ne zaman çalıştığı açık değildir. Hala çalışıyor gibi görünüyor ama her zaman değil.
Aşağıdaki yorumlarda birkaç ipucu bulacaksınız. @Anilyeni tarafından eklenen bir tane daha araştırmaya değer olabilir:
Fark ettiğim gibi autocomplete="off"
, Chrome 80'de çalışıyor, EĞER 3 öğeden daha az ise<form>
. Mantığın ne olduğunu veya bununla ilgili belgelerin nerede olduğunu bilmiyorum.
Ayrıca test etmedim de, @dubrox gelen bu ilgili olabilir:
hile için çok teşekkürler, ama display:none;
artık çalışmıyor gibi cevap güncelleyin , ama position: fixed;top:-100px;left:-100px; width:5px;
:)
NİSAN 2020'yi güncelle
Bu özellik için krom için özel değer işi yapıyor: (girişte test edildi - ancak benim tarafımdan değil)
autocomplete="chrome-off"