Menonaktifkan IsiOtomatis Chrome

620

Saya telah mengalami masalah dengan perilaku pengisian otomatis chrome pada beberapa bentuk.

Bidang dalam formulir semua memiliki nama yang sangat umum dan akurat, seperti "email", "nama", atau "kata sandi", dan semuanya juga telah autocomplete="off"ditetapkan.

Bendera pelengkapan otomatis telah berhasil menonaktifkan perilaku pelengkapan otomatis, tempat dropdown nilai muncul saat Anda mulai mengetik, tetapi belum mengubah nilai yang dipopulasikan secara otomatis oleh Chrome pada bidang yang diisi.

Perilaku ini akan baik-baik saja kecuali bahwa chrome mengisi input dengan tidak benar, misalnya mengisi input telepon dengan alamat email. Pelanggan mengeluh tentang hal ini, jadi ini diverifikasi terjadi dalam beberapa kasus, dan bukan karena semacam hasil dari sesuatu yang telah saya lakukan secara lokal pada mesin saya.

Satu-satunya solusi saat ini yang dapat saya pikirkan adalah secara dinamis menghasilkan nama input khusus dan kemudian mengekstrak nilai-nilai di backend, tetapi ini sepertinya cara yang cukup rumit untuk mengatasi masalah ini. Apakah ada tag atau quirks yang mengubah perilaku pengisian otomatis yang dapat digunakan untuk memperbaikinya?

templaedhel
sumber
6
Itu bukan duplikat. Yang ini menangani penonaktifan autofill, yang menangani penataan warna autofill ...
Nicu Surdu
17
autocomplete = "false" bukan autocomplete = "off" sesuai jawaban Kaszoni Ferencz, dapatkan voting untuk itu orang.
roughcoder
7
Lihatlah jumlah jawaban untuk pertanyaan ini - itu akan memberi tahu Anda sesuatu: Anda sedang berjuang untuk kalah Ini bukan lagi masalah Chrome, Firefox dan yang lainnya telah mengikuti. Suka atau tidak, Anda harus menerima keputusan industri peramban, bahwa formulir pelengkapan otomatis adalah pilihan pengguna - Anda dapat melawannya, tetapi Anda akan kalah. Pada akhirnya, pertanyaan yang seharusnya Anda ajukan adalah bukan, bagaimana saya bisa menumbangkan lengkapi-otomatis, melainkan, bagaimana cara membuat formulir yang berfungsi dengan baik dengan lengkapi-otomatis. Kekhawatiran Anda tentang keamanan bukan milik Anda, tetapi pengguna.
mindplay.dk
21
Maaf, tetapi tanggapan @ mindplay.dk kontraproduktif. Situasi saya adalah saya memiliki pengguna yang telah masuk ke situs saya dan halaman di situs itu untuk mereka memasukkan informasi akun / pwd untuk sistem lain. Ketika saya memasang diaog bagi mereka untuk memasukkan yang baru, info masuk mereka untuk situs saya terisi, yang benar-benar salah dan akan menyebabkan masalah jika / ketika pengguna secara tidak sengaja memasukkan informasi itu. Keduanya tidak ada hubungannya dengan satu sama lain. Dalam hal ini browser melakukan sesuatu yang berlawanan dengan apa yang diinginkan pengguna.
Mike K
8
@ mindplay.dk - Aplikasi web saya adalah aplikasi manajemen alur kerja untuk tempat kerja, jadi, tidak, kekhawatiran tentang keamanan adalah milik saya untuk dikhawatirkan, sebagaimana diamanatkan oleh manajemen puncak dan harus ditaati oleh semua karyawan, alias "para pengguna. " Namun meminta mereka untuk mengatur Chrome, IE, atau browser lain sendiri akan meninggalkan celah dalam proses otentikasi, karena mereka dapat, secara sengaja atau tidak, akhirnya menggunakan autofill. Tidak semua aplikasi web memiliki tipe yang sama, dengan jenis pengguna atau masalah yang sama.
PoloHoleSet

Jawaban:

906

Untuk versi Chrome baru, Anda cukup memasukkan autocomplete="new-password"bidang kata sandi dan hanya itu. Saya sudah memeriksanya, bekerja dengan baik.

Dapatkan kiat itu dari pengembang Chrome dalam diskusi ini: https://bugs.chromium.org/p/chromium/issues/detail?id=370363#c7

PS Perhatikan bahwa Chrome akan berupaya menyimpulkan perilaku isi-otomatis dari nama, id, dan konten teks apa pun yang dapat diperolehnya di sekitar bidang termasuk label dan simpul teks yang sewenang-wenang. Jika ada token pelengkapan otomatis seperti street-addressdalam konteks, Chrome akan melakukan pengisian otomatis seperti itu. Heuristik bisa sangat membingungkan karena kadang-kadang hanya memicu jika ada bidang tambahan dalam formulir, atau tidak jika ada terlalu sedikit bidang dalam formulir. Perhatikan juga bahwa autocomplete="no"akan berfungsi tetapi autocomplete="off"tidak karena alasan historis. autocomplete="no"adalah Anda memberi tahu browser bahwa bidang ini harus diisi otomatis sebagai bidang yang disebut "no". Jika Anda menghasilkan autocompletenama acak unik, Anda menonaktifkan pelengkapan otomatis.

Jika pengguna Anda mengunjungi formulir yang salah, informasi isi ulang otomatisnya mungkin rusak . Menyuruh mereka masuk secara manual dan memperbaiki informasi pengisian otomatis di Chrome mungkin merupakan tindakan yang perlu diambil dari mereka.

tibalt
sumber
115
'kata sandi baru' berhasil untuk saya setelah mencoba 'mematikan' dan 'salah'
Kevin
26
Ini adalah satu-satunya perbaikan yang berfungsi sekarang. Salah, dan mati, jangan bekerja lagi. Seharusnya jawaban yang benar sekarang.
David
5
Alasan ini berhasil adalah karena tim chrome berusaha untuk membuat nilai pelengkapan otomatis yang disarankan, seperti yang ditunjukkan @ developers.google.com/web/fundamentals/design-and-ui/input/... Nilai "kata sandi baru" adalah salah satu beberapa yang memiliki logika tambahan yang mengelilinginya, dan dalam hal ini, untuk menangguhkan pengisian otomatis tetapi masih mengizinkan saran pelengkapan otomatis
Deminetix
30
Tidak berfungsi pada 1.13.2018 Versi 63.0.3239.132 (Bangun Resmi) (64-bit)
PellucidWombat
37
Saya hanya ingin mengatakan .. Setelah menemukan masalah ini .. Chrome adalah karya nyata. Jadi sekarang kita harus melewati rintangan untuk menonaktifkan fungsionalitas yang seharusnya tetap opsional. Dalam dunia apa alamat akan diisi otomatis diperlukan dalam aplikasi bisnis di mana alamat itu baru / berbeda setiap saat. Google menjadi sama buruknya dengan Microsoft.
Eddy Howard
700

Saya baru saja menemukan bahwa jika Anda memiliki nama pengguna dan kata sandi yang diingat untuk sebuah situs, versi Chrome saat ini akan secara otomatis mengisi nama pengguna / alamat email Anda ke dalam bidang sebelumtype=password bidang apa pun . Tidak peduli bidang apa yang disebut - anggap saja bidang tersebut sebelum kata sandi menjadi nama pengguna Anda.

Solusi lama

Cukup gunakan <form autocomplete="off">dan itu mencegah kata sandi prefilling serta segala jenis pengisian heuristik bidang berdasarkan asumsi browser dapat membuat (yang sering salah). Berbeda dengan menggunakan <input autocomplete="off">yang tampaknya cukup banyak diabaikan oleh autofill kata sandi (di Chrome, Firefox tidak mematuhinya).

Solusi Terbaru

Chrome sekarang mengabaikan <form autocomplete="off">. Oleh karena itu solusi awal saya (yang telah saya hapus) sekarang menjadi hal yang populer.

Cukup buat beberapa bidang dan buat mereka disembunyikan dengan "display: none". Contoh:

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

Lalu letakkan bidang nyata Anda di bawahnya.

Ingatlah untuk menambahkan komentar atau orang lain di tim Anda akan bertanya-tanya apa yang Anda lakukan!

Pembaruan Maret 2016

Baru diuji dengan Chrome terbaru - semuanya baik. Ini adalah jawaban yang cukup lama sekarang tetapi saya hanya ingin menyebutkan bahwa tim kami telah menggunakannya selama bertahun-tahun sekarang di puluhan proyek. Ini masih berfungsi dengan baik meskipun ada beberapa komentar di bawah ini. Tidak ada masalah dengan aksesibilitas karena bidang display:noneberarti mereka tidak mendapatkan fokus. Seperti yang saya sebutkan, Anda harus meletakkannya di depan bidang Anda yang sebenarnya.

Jika Anda menggunakan javascript untuk memodifikasi formulir Anda, ada trik tambahan yang Anda perlukan. Perlihatkan bidang palsu saat Anda memanipulasi formulir dan kemudian sembunyikan lagi milidetik kemudian.

Kode contoh menggunakan jQuery (dengan asumsi Anda memberikan kelas bidang palsu Anda):

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

Perbarui Juli 2018

Solusi saya tidak lagi berfungsi dengan baik karena para pakar anti-kegunaan Chrome telah bekerja keras. Tapi mereka telah memberi kita tulang dalam bentuk:

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

Ini berfungsi dan sebagian besar memecahkan masalah.

Namun, itu tidak berfungsi ketika Anda tidak memiliki bidang kata sandi tetapi hanya alamat email. Itu juga bisa sulit untuk membuatnya berhenti menjadi kuning dan prefilling. Solusi bidang palsu dapat digunakan untuk memperbaikinya.

Bahkan terkadang Anda harus memasukkan dua bidang palsu, dan mencobanya di tempat yang berbeda. Misalnya, saya sudah memiliki bidang palsu di awal formulir saya, tetapi Chrome baru-baru ini mulai mengisi kembali bidang 'Email' saya - jadi saya menggandakan dan memasukkan lebih banyak bidang palsu tepat sebelum bidang 'Email', dan itu memperbaikinya . Menghapus bidang pertama atau kedua bidang akan kembali ke pengisian otomatis terlalu banyak yang salah.

Perbarui Mar 2020

Tidak jelas apakah dan kapan solusi ini masih berfungsi. Tampaknya masih berfungsi kadang-kadang tetapi tidak setiap saat.

Dalam komentar di bawah ini Anda akan menemukan beberapa petunjuk. Satu yang baru saja ditambahkan oleh @anilyeni mungkin perlu diselidiki lebih lanjut:

Seperti yang saya perhatikan, autocomplete="off"berfungsi di Chrome 80, JIKA ada kurang dari 3 elemen di <form>. Saya tidak tahu apa logika atau di mana dokumentasi terkait tentang hal itu.

Yang ini dari @dubrox mungkin relevan, walaupun saya belum mengujinya:

terima kasih banyak untuk triknya, tapi tolong perbarui jawabannya, karena display:none;tidak berfungsi lagi, tetapi position: fixed;top:-100px;left:-100px; width:5px;tidak :)

Perbarui APRIL 2020

Nilai khusus untuk chrome untuk atribut ini adalah melakukan pekerjaan: (diuji pada input - tetapi tidak oleh saya) autocomplete="chrome-off"

mike nelson
sumber
7
Saya sangat yakin ini akan bekerja ketika Anda menjelaskan dengan sempurna isi ulang heuristik yang saya alami dengan input sebelum bidang kata sandi. Sayangnya, itu tidak berhasil untuk saya, saya letakkan autocomplete = "off" pada formulir dan semua input dan semuanya masih terisi. Satu-satunya solusi yang bekerja untuk saya adalah di tautan selamat tinggal di atas. (menempatkan input type = "password" kedua yang tersembunyi sebelum kata sandi membuang pemeriksaan heuristik chrome)
parlemen
19
Ini digunakan untuk bekerja dengan baik, saya menggunakannya juga, tetapi karena upgrade Chrome beberapa waktu lalu (antara itu dan 5 Mei), Chrome mengabaikan properti form :(
Tominator
13
Google mengambil keputusan dalam (menurut saya Chrome v34) untuk membuatnya kebijakan untuk SELALU sekarang mengabaikan autocomplete = "off", termasuk arahan level form ... itu akan baik-baik saja jika benar-benar membuat bidangnya benar.
Jammer
10
coba autocomplete = "false" not autocomplete = "off"
roughcoder
243
Atribut ini juga diperlukan:autocomplete="I told you I wanted this off, Google. But you would not listen."
rybo111
265

Setelah berbulan-bulan perjuangan, saya telah menemukan bahwa solusinya jauh lebih sederhana daripada yang Anda bayangkan:

Alih-alih autocomplete="off"digunakan autocomplete="false";)

Sesederhana itu, dan itu berfungsi seperti pesona di Google Chrome juga!


Pembaruan Agustus 2019 (dikreditkan ke @JonEdiger dalam komentar)

Catatan: banyak info online mengatakan browser sekarang memperlakukan autocomplete = 'false' sama dengan autocomplete = 'off'. Setidaknya pada saat ini juga, itu mencegah pelengkapan otomatis untuk ketiga browser tersebut.

Setel pada level form dan kemudian untuk input yang Anda inginkan, setel ke beberapa nilai yang tidak valid seperti 'tidak ada':

<form autocomplete="off"> 
  <input type="text" id="lastName" autocomplete="none"/> 
  <input type="text" id="firstName" autocomplete="none"/>
</form>
Kaszoni Ferencz
sumber
8
Bekerja untukku! Tetapi ada satu pernyataan penting: Saya memiliki 5 bidang di halaman web saya: Nama, Alamat, Kode pos, Telepon dan Email. Ketika saya menyertakan autocomplete = 'false' pada Formulir dan pada bidang Nama, itu masih berfungsi. Namun, ketika saya menyertakan autocomplete = 'false' juga pada bidang Alamat, akhirnya secara otomatis menghentikan pengisian otomatis mereka! Jadi, Anda harus meletakkan properti autocomplete bukan pada bidang login atau nama, tetapi pada bidang berikut juga! (Bekerja pada Chrome 43.0.2357.81 pada 2015-05-27)
Dvd Franco
45
JIKA INI TIDAK BEKERJA UNTUK ANDA: Ingatlah bahwa ada 2 cara Chrome "membantu" pengguna. AUTOCOMPLETE akan meminta berdasarkan pengajuan sebelumnya dalam formulir yang sama yang diajukan dan akan memengaruhi orang yang menggunakan formulir lebih dari sekali. Pelengkapan otomatis dinonaktifkan dengan pelengkapan otomatis = "off". AUTOFILL akan meminta berdasarkan buku alamat dari sebelumnya mengisi formulir serupa di halaman lain. Ini juga akan menyoroti bidang yang sedang diubah. IsiOtomatis dapat dinonaktifkan dengan autocomplete = "false".
genkilabs
4
Ini tidak berfungsi untuk saya (Versi 43.0.2357.124 m). Ini mungkin merupakan pengawasan oleh Google, yang sekarang telah diselesaikan. Mereka tampaknya berpikir "pengguna selalu benar" karena mereka ingin mengisi ulang semuanya secara otomatis. Masalahnya adalah, formulir pendaftaran saya menyimpan data pengguna seperti halnya formulir masuk, yang jelas bukan yang diinginkan pengguna ...
rybo111
3
YEP Ia bekerja di Chrome 43.0.2357 !! perilaku di Chrome ini sangat menjengkelkan, dan penyelesaian ini membutuhkan waktu beberapa saat untuk mencari tahu. Terima kasih atas jawaban anda.
Adriano Rosa
3
tidak bekerja dengan Chrome 44.0.2403.157. Bagaimana fitur ini dapat berfungsi dan tidak bekerja dengan versi yang berbeda. Itu konyol
Mattijs
120

Kadang-kadang bahkan autocomplete=offtidak akan mencegah mengisi kredensial ke bidang yang salah.

Solusinya adalah dengan menonaktifkan isi-otomatis browser menggunakan mode baca-saja dan mengatur fokus yang dapat ditulis pada:

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

The focusperistiwa terjadi di klik mouse dan tabbing melalui bidang.

Memperbarui:

Mobile Safari menetapkan kursor di lapangan, tetapi tidak menampilkan keyboard virtual. Solusi baru ini berfungsi seperti sebelumnya, tetapi menangani keyboard virtual:

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

Demo Langsung https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Penjelasan: Browser otomatis mengisi kredensial ke bidang teks yang salah?

mengisi input secara tidak benar, misalnya mengisi input ponsel dengan alamat email

Terkadang saya melihat perilaku aneh ini di Chrome dan Safari, ketika ada bidang kata sandi dalam bentuk yang sama. Saya kira, browser mencari bidang kata sandi untuk memasukkan kredensial Anda yang disimpan. Kemudian ia mengisi nama pengguna ke dalam bidang input-teks terdekat, yang muncul sebelum bidang kata sandi di DOM (hanya menebak karena pengamatan). Karena browser adalah contoh terakhir dan Anda tidak dapat mengontrolnya,

Perbaikan baca-baca di atas ini berhasil untuk saya.

dsuess
sumber
12
apa perbaikan hebat :) Anda harus mengganti jquery dengan ini: this.removeAttribute ("class")
Roey
Saya menggunakan ini untuk menghentikan dropdwonlist agar tidak diisi otomatis. Tetapi juga dibenahi kembali hanya agar tidak terlihat. Ide keren!
ComfortablyNumb
1
@Clint: Cuplikan kode saya di atas menghapus atribut readonly segera setelah pengguna memasukkan bidang (per klik mouse atau tombol tab). Saya kira, Anda merujuk ke bidang, yang isinya otomatis dilindungi , tetapi tidak disentuh oleh pengguna. Apa tujuan bidang ini - dan apakah itu benar-benar perlu dilindungi? Bergantung pada skenarionya, menghapus semua atribut hanya baca saat kirim dapat menjadi pilihan. Bisakah Anda menambahkan komentar yang lebih spesifik tentang masalah Anda? Mungkin saya bisa membantu Anda :)
dsuess
1
Jika Anda menggunakan JavaScript. mengapa tidak hanya mengatur nilai dummylalu menghapus nilai lagi? Menambah dan menghapus suara yang hanya dibaca seperti langkah berbahaya - bagaimana jika browser tidak ingin Anda fokus padanya?
rybo111
1
Tampaknya google sedang mencoba membuat keputusan untuk kita semua di sini, mereka menutup tiket terkait autocomplete = "off": bugs.chromium.org/p/chromium/issues/detail?id=468153 . Tapi ada tiket lain yang dibuka untuk mengumpulkan kasus pengguna yang valid untuk menonaktifkan pengisian otomatis, harap balas tiket ini untuk meningkatkan kesadaran tentang masalah ini di sini: bugs.chromium.org/p/chromium/issues/detail?id=587466
Norman Xu
80

Jika Anda menerapkan fitur kotak pencarian, coba atur typeatributnya searchsebagai berikut:

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

Ini berfungsi untuk saya di Chrome v48 dan tampaknya merupakan markup yang sah:

https://www.w3.org/wiki/HTML/Elements/input/search

dana
sumber
Iya! :) Terima kasih! Ini berfungsi di Chrome 67.0.3396.99. (Saya pikir tautan Anda seharusnya: w3.org/wiki/HTML/Elements/input/search per September 2018).
Andy King
4
Akhirnya! masih berfungsi Versi 69.0.3497.100 (Bangun Resmi) (64-bit) Ini harus menjadi jawaban nyata!
Venson
1
semua orang benar dan salah dan saat yang sama Anda harus menulis autocomplete = "off" di dalam tag <form autocomplete = "off"> sebagai gantinya pada input dan ini akan menghentikan perilaku
pengisian
2
Juga berfungsi jika Anda mengatur autocomplete = "off" pada form (untuk mengubah form-wide default) dan kemudian hanya perlu mengatur type = "search" pada <input>
John
9
Setelah Chrome versi 72.XX, perbaikan ini tidak berhasil. Temukan
perbaikan
65

Coba ini. Saya tahu pertanyaannya agak lama, tetapi ini adalah pendekatan yang berbeda untuk masalahnya.

Saya juga memperhatikan masalah tersebut muncul tepat di atas password lapangan.

Saya mencoba kedua metode seperti

<form autocomplete="off"> dan <input autocomplete="off"> tetapi tidak ada yang bekerja untuk saya.

Jadi saya memperbaikinya menggunakan potongan di bawah ini - baru saja menambahkan bidang teks lain tepat di atas bidang jenis kata sandi dan membuatnya display:none .

Sesuatu seperti ini:

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

Semoga ini bisa membantu seseorang.

Jobin Jose
sumber
1
Yang ini bekerja untuk saya (untuk saat ini). Saya telah menemukan bahwa saya telah menggunakan sekitar setengah lusin peretasan yang berbeda dari waktu ke waktu, dan setelah beberapa saat Chrome memutuskan ingin mengalahkan peretasan itu. Jadi yang baru diperlukan, seperti ini. Dalam aplikasi saya, saya memiliki formulir pembaruan profil dengan bidang email dan kata sandi yang dibiarkan kosong kecuali jika pengguna ingin melakukan perubahan. Tetapi ketika Chrome mengisi otomatis, itu menempatkan userid di bidang "konfirmasi email", menghasilkan semua jenis kondisi kesalahan, yang mengarah pada kondisi kesalahan lebih lanjut, karena pengguna bingung tentang mencoba melakukan hal yang benar.
Jeffrey Simon
2
Penjelasan cepat mengapa peretasan ini bekerja (untuk saat ini): Chrome melihat jenis pertama = input kata sandi dan mengisi secara otomatis dan mengasumsikan bahwa bidang langsung sebelum ini HARUS menjadi bidang nama pengguna, dan isiOtomatis bidang tersebut dengan nama pengguna. @ JeffreySimon ini harus menjelaskan fenomena userid di bidang konfirmasi email (saya melihat hal yang sama di formulir saya).
MrBoJangles
1
@kentcdodds - tidak yakin apa yang Anda maksud tentang tidak lagi berfungsi. Jsbin Anda tidak memiliki bidang kata sandi sehingga situasi yang berbeda. Saya telah menggunakan solusi ini selama bertahun-tahun dan baru-baru ini saya perhatikan itu diperlukan dan itu bekerja untuk saya minggu lalu (Maret 2015).
mike nelson
1
Hore! Sebuah solusi yang sepertinya berhasil! Saya akan menyarankan memberi bidang nama passworddan memiliki actual_passwordbidang yang sah, karena Google sekarang tampaknya melihat name. Namun, ini berarti Chrome tidak akan menyimpan kata sandi, yang merupakan fungsi yang sebenarnya saya inginkan . AAAAARRRRGHH!
rybo111
2
Pembaruan: Ini terus bekerja lebih dari setahun sejak terakhir kali saya menerapkannya. Kami mungkin memiliki pemenang yang solid di sini.
MrBoJangles
48

Saya tidak tahu mengapa, tetapi ini membantu dan bekerja untuk saya.

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

Saya tidak tahu mengapa, tetapi autocompelete = "new-password" menonaktifkan autofill. Ini bekerja di versi chrome 49.0.2623.112 terbaru .

Taura
sumber
Diperbarui chrome saya, dan masih berfungsi untuk saya. 50.0.2661.87 (64bit)
Tauras
Sayangnya, saat mengirimkan formulir (atau ketika bidang input disembunyikan / dihapus), Chrome kemudian meminta untuk menyimpan login yang diubah.
sibbl
Bekerja dalam Versi 51.0.2704.79 m
Geoffrey Hale
ya ampun, kenapa ini berhasil? apakah itu bug? karena saya mengujinya di sini dan menempatkannya hanya dalam satu input dan bekerja untuk input dan kata sandi input, tetapi saya memasukkannya hanya dalam kata sandi
Leandro RR
Saya tidak punya ide. Saya pikir itu "benda" krom yang dibuat oleh pengembang. Mungkin saya salah.
Tauras
46

Bagi saya sederhana

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

Melakukannya.

Diuji pada beberapa versi, percobaan terakhir ada di 56.0.2924.87

Kuf
sumber
@ArnoldRoa versi menambahkan, itu sudah ada di situs kami sejak hari saya mempostingnya dan memiliki beberapa versi yang berfungsi dengan baik. versi mana yang Anda gunakan? PC / Mac?
Kuf
Tidak berfungsi pada 57.0.2987.110. Chrome menyorotnya kuning dan mengisi bidang dengan kata sandi saya yang disimpan. Tetapi halaman itu adalah halaman manajemen pengguna, bukan halaman login.
1
@ Dummy Saya mengujinya sekarang di chrome terbaru (57) dan masih berfungsi untuk saya. Apakah Anda melakukan sesuatu yang istimewa dengan bidang input? apakah Anda meletakkan kode di suatu tempat yang bisa saya coba mereproduksi?
Kuf
3
Versi 64.0.3282.186 (Bangun Resmi) (64-bit) Windows. 2018-03-01 TIDAK BEKERJA untuk menonaktifkan isi-otomatis.
billy jean
2
Cukup yakin ini menghapus formulir / input dari teknologi bantu w3c.github.io/using-aria/#ariapresentation
Olex Ponomarenko
25

Anda harus menambahkan atribut ini:

autocomplete="new-password"

Tautan Sumber: Artikel Lengkap

Hitesh Kalwani
sumber
Apakah Anda memiliki sumber bagaimana mengetahuinya?
AlexioVay
Bekerja, tetapi tidak semantik karena dapat digunakan pada nama pengguna dan bidang lainnya.
Robin Andrews
1
Halaman dokumentasi: developer.mozilla.org/en-US/docs/Web/Security/…
Justinas
19

Ini sangat sederhana dan rumit :)

google chrome pada dasarnya mencari setiap elemen kata sandi pertama yang terlihat di dalam <form>, <body>dan <iframe>tag untuk mengaktifkan isi ulang otomatis untuk mereka, jadi untuk menonaktifkan ini Anda perlu menambahkan elemen kata sandi dummy sebagai berikut:

    • jika elemen kata sandi Anda di dalam <form>tag, Anda harus meletakkan elemen dummy sebagai elemen pertama dalam formulir Anda segera setelah <form>tag terbuka

    • jika elemen kata sandi Anda tidak di dalam <form>tag, masukkan elemen dummy sebagai elemen pertama di halaman html Anda segera setelah <body>tag terbuka

  1. Anda perlu menyembunyikan elemen dummy tanpa menggunakan css display:nonejadi pada dasarnya gunakan yang berikut ini sebagai elemen kata sandi dummy.

    <input type="password" style="width: 0;height: 0; visibility: hidden;position:absolute;left:0;top:0;"/>
Fareed Alnamrouti
sumber
1
Kerja bagus, bagaimana Anda mengetahui algoritma Chrome? Saya baru tahu bahwa metode lama saya mengubah nilai dengan JS setelah halaman dimuat dengan timer setTimeout tidak berfungsi lagi. Tapi ini bekerja dengan sempurna!
Sayangnya, tidak berfungsi untuk input TextBox biasa.
eYe
1
sebenarnya itu berfungsi hanya mengatur nama properti;)
Fareed Alnamrouti
Di Chrome 58 ini tidak berfungsi. Gunakan lebar: 1px. Jika bidang kata sandi sepenuhnya tersembunyi, maka Chrome akan mengisi secara normal. Juga z-index: -999 bisa berguna sehingga tidak tumpang tindih dengan konten apa pun.
cristiancastrodc
1
Berfungsi di Chrome 67.0 pada komponen html sudut<form *ngIf="!loggedIn()" #loginForm="ngForm" class="navbar-form navbar-right" (ngSubmit)="login()"><input type="password" style="width: 0;height: 0; visibility: hidden;position:absolute;left:0;top:0;"/><input type="text" #username="ngModel" placeholder="Username" class="form-control" required autocomplete="off" name="username" [(ngModel)]="model.username"><input type="password" #password="ngModel" placeholder="Password" class="form-control" required autocomplete="off" name="password" [(ngModel)]="model.password">...
Junior Mayhé
19

Inilah solusi yang saya usulkan, karena Google bersikeras untuk mengesampingkan setiap penyelesaian yang tampaknya dilakukan orang.

Opsi 1 - pilih semua teks saat klik

Tetapkan nilai input ke contoh untuk pengguna Anda (misalnya [email protected]), atau label bidang (misalnya Email) dan tambahkan kelas yang dipanggil focus-selectke input Anda:

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

Dan inilah jQuery:

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

Saya benar-benar tidak bisa melihat Chrome mengotak-atik nilai. Itu gila. Jadi semoga ini adalah solusi yang aman.

Opsi 2 - setel nilai email ke spasi, lalu hapus

Dengan asumsi Anda memiliki dua input, seperti email dan kata sandi, setel nilai bidang email ke " "(spasi) dan tambahkan atribut / nilai autocomplete="off", lalu hapus ini dengan JavaScript. Anda dapat membiarkan nilai kata sandi kosong.

Jika pengguna tidak memiliki JavaScript untuk beberapa alasan, pastikan Anda memotong sisi server input mereka (Anda mungkin harus tetap), jika mereka tidak menghapus ruang.

Inilah jQuery:

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

Saya menetapkan batas waktu 15karena5 sepertinya berfungsi sesekali dalam pengujian saya, jadi trebling angka ini sepertinya merupakan taruhan yang aman.

Gagal menyetel nilai awal ke spasi menghasilkan Chrome meninggalkan input sebagai warna kuning, seolah-olah telah mengisinya secara otomatis.

Opsi 3 - input tersembunyi

Letakkan ini di awal formulir:

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

CSS:

.hide{ display:none; }

Pastikan Anda menyimpan catatan HTML sehingga pengembang lain Anda tidak menghapusnya! Pastikan juga nama input yang disembunyikan relevan.

rybo111
sumber
@Via - sudahkah Anda mencoba menavigasi ke halaman lain dan kemudian menekan tombol kembali? Saya mendapatkan hasil yang beragam - mungkin perlu mengutak-atik.
rybo111
Saya belum mencoba opsi 1 jika Anda bersungguh-sungguh. Juga saya hanya perlu menonaktifkan autofill pada modal ajax yang tidak akan dipanggil dengan tombol kembali. Tetapi jika akan ada hasil lain, saya akan memberi tahu Anda. @ rybo111
AlexioVay
@Vaia maksud saya opsi 2 - harap balas di sini jika Anda menemui masalah. Terima kasih.
rybo111
15

Gunakan css text-security: disc tanpa menggunakan type = password .

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;
}
Stiffels
sumber
pendekatan terbaik yang saya temukan sejauh ini! baik, setidaknya untuk Chrome 64: /
scipper
Untuk tujuan saya ini sempurna, terima kasih! Chrome tidak mengisi otomatis atau melengkapinya secara otomatis, tidak menawarkan untuk menyimpannya, dan tidak hanya itu tidak terlihat, tetapi juga dari clipboard - saya menyalin apa yang saya ketikkan dan tempelkan ke notepad dan baru saja mendapat "••• •••••••• ". Cemerlang!
Doug McLean
15

Dalam beberapa kasus, browser akan terus menyarankan nilai pelengkapan otomatis meskipun atribut pelengkapan otomatis disetel ke mati. Perilaku tak terduga ini bisa sangat membingungkan bagi pengembang. Trik untuk benar-benar memaksa pelengkapan otomatis adalah dengan menetapkan string acak ke atribut , misalnya:

autocomplete="nope"
Denis Brezhitskiy
sumber
RE: 'perilaku tak terduga' Perilaku ini didorong oleh Google yang meyakini bahwa ia mengetahui lebih baik daripada pengembang bagaimana setiap halaman seharusnya bekerja. Terkadang saya hanya ingin input kata sandi mentah, tanpa embel-embel.
Biasa Joe
3
kombinasi ini AKHIRNYA bekerja untuk saya: role = "presentation" autocomplete = "nope" diuji pada Versi Chrome 64.0.3282.186 (Pembuatan Resmi) (64-bit). Sungguh mimpi buruk!
billy jean
2
String acak berfungsi untuk chrome tetapi tidak untuk firefox. Untuk kelengkapan saya menggunakan "autocomplete = 'off-no-complete'" dan mengatur atribut readonly dengan onfocus = "this.readOnly = false". Aplikasi saya adalah aplikasi perusahaan yang pengguna gunakan untuk memasukkan ribuan alamat, jadi use-case untuk mengontrol ini nyata - Saya juga bisa menjamin penggunaan Javascript, jadi setidaknya saya punya itu untuk saya
ChronoFish
13

Saya menemukan bahwa menambahkan ini ke formulir mencegah Chrome menggunakan IsiOtomatis.

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

Ditemukan di sini https://code.google.com/p/chromium/issues/detail?id=468153#hc41

Sangat mengecewakan bahwa Chrome telah memutuskan bahwa ia tahu lebih baik daripada pengembang tentang kapan harus Pelengkapan Otomatis. Microsoft benar-benar merasakannya.

Rob Jensen
sumber
Bukan fakta bahwa Anda mengatakan PreventChromeAutocomplete. Saya bisa mendapatkan pelengkapan otomatis untuk bekerja dengan mengatakan pelengkapan otomatis = "off" dan name = "somename". Tetapi ini hanya berfungsi jika Anda menyebutkan dua input berbeda dengan nama yang sama. Jadi dalam kasus Anda PreventChromeAutocomplete harus diterapkan pada dua input yang berbeda. Sangat aneh ...
Joe Heyming
11
<input readonly onfocus="this.removeAttribute('readonly');" type="text">

menambahkan atribut readonly ke tag bersama dengan peristiwa onfocus menghapusnya memperbaiki masalah

Avindu Hewa
sumber
Solusi ini berfungsi di bidang teks
Denis Slonovschi
9

Untuk kombo kata sandi nama pengguna, ini adalah masalah yang mudah diselesaikan. Heuristik Chrome mencari polanya:

<input type="text">

diikuti oleh:

<input type="password">

Hancurkan saja proses ini dengan membatalkan ini:

<input type="text">
<input type="text" onfocus="this.type='password'">
Bernesto
sumber
Sayangnya, ini berlaku untuk lebih dari sekedar jenis nama pengguna / kata sandi. Chrome akan melihat teks pengganti untuk menyimpulkan apa yang disarankan. Misalnya: jsbin.com/jacizu/2/edit
kentcdodds
Adalah valid bahwa Anda masih dapat mengisi kolom dengan saran browser seperti yang ditunjukkan contoh Anda, jadi ini tidak benar-benar mengatasi masalah OP. Solusi ini, hanya mencegah browser dari gabungan nama pengguna dan kata sandi "secara otomatis" seperti pada contoh dengan jawaban teratas. Ini mungkin berguna bagi sebagian orang, tetapi bukan solusi menyeluruh untuk hanya menonaktifkan pelengkapan otomatis, yang harus datang dari Google.
Bernesto
4
Meskipun, jika Anda menambahkan spasi di depan teks placeholder Anda, itu akan menonaktifkan saran otomatis berdasarkan placeholder juga. Pasti peretasan, meskipun tidak lebih dari saran lainnya. jsbin.com/pujasu/1/edit
Bernesto
sebenarnya ... sepertinya berhasil untuk contoh Anda, tetapi untuk beberapa alasan itu tidak bekerja untuk saya :-(
kentcdodds
Ha! Itu sebabnya ini disebut hack ... Apakah Anda memiliki contoh yang dapat Anda bagikan di tempat yang tidak berfungsi?
Bernesto
8

Mike Nelsons memberikan solusi yang tidak berfungsi untuk saya di Chrome 50.0.2661.102 m. Cukup menambahkan elemen input dari jenis yang sama dengan tampilan: tidak ada set yang tidak lagi menonaktifkan peramban-otomatis asli. Sekarang perlu untuk menduplikasi atribut nama dari bidang input yang Anda ingin menonaktifkan lengkapi-otomatis.

Juga, untuk menghindari duplikasi bidang input ketika mereka berada di dalam elemen formulir Anda harus menempatkan dinonaktifkan pada elemen yang tidak ditampilkan. Ini akan mencegah elemen itu diajukan sebagai bagian dari tindakan formulir.

<input name="dpart" disabled="disabled" type="password" style="display:none;">
<input name="dpart" type="password">
<input type="submit">
mccainz
sumber
Adapun Juni 2016 dan Chrome 51.0.2704.106 m ini adalah satu-satunya solusi yang berfungsi di sini
Denis
Tetapi apakah form akan memilih bidang input kanan (terlihat) yang Anda butuhkan? Karena itu nama yang sama.
AlexioVay
@Vaia, menambahkan atribut yang dinonaktifkan ke elemen duplikat akan mencegahnya dikirimkan.
mccainz
8

Pada 2016 Google Chrome mulai mengabaikannya autocomplete=offmeskipun dalam W3C. Jawaban yang mereka posting :

Bagian yang sulit di sini adalah bahwa di suatu tempat di sepanjang perjalanan autocomplete = off web menjadi default untuk banyak bidang formulir, tanpa ada pemikiran nyata apakah itu baik untuk pengguna atau tidak. Ini tidak berarti tidak ada kasus yang sangat valid di mana Anda tidak ingin data pengisian otomatis browser (misalnya pada sistem CRM), tetapi pada umumnya, kami melihatnya sebagai kasus minoritas. Dan sebagai hasilnya, kami mulai mengabaikan autocomplete = off untuk data IsiOtomatis Chrome.

Yang pada dasarnya mengatakan: kita lebih tahu apa yang diinginkan pengguna.

Mereka membuka bug lain untuk mengirim kasus penggunaan yang valid saat autocomplete = off diperlukan

Saya belum melihat masalah yang terhubung dengan autocomplete melalui semua aplikasi B2B saya tetapi hanya dengan input dari jenis kata sandi.

IsiOtomatis masuk jika ada bidang kata sandi di layar, bahkan yang tersembunyi. Untuk mematahkan logika ini, Anda dapat memasukkan setiap bidang kata sandi ke dalam bentuknya sendiri jika itu tidak merusak logika halaman Anda.

<input type=name >

<form>
    <input type=password >
</form>
norekhov
sumber
4
Karena jawaban Anda adalah yang terbaru, bisakah Anda menambahkannya autocomplete="pineapple"atau omong kosong lain juga sepertinya memperbaiki masalahnya? Setidaknya, itu terjadi pada saya!
Douwe de Haan
1
@DouwedeHaan ini baik-baik saja sampai formulir disimpan, lalu lengkapi otomatis akan memberikan rekomendasi untuk bidang 'nanas' yang disimpan. Tapi mungkin menggunakan hash acak untuk nilai autocomplete misalnya akan menyelesaikan ini?
gali
@digout saya setuju. Contoh yang baik adalah menggunakan UUID untuk hal-hal semacam ini. Pastikan senarnya unik!
Douwe de Haan
7

Jika Anda mengalami masalah dengan menjaga placeholder tetapi menonaktifkan autofill chrome saya menemukan solusi ini.

Masalah

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/

Contoh di atas masih menghasilkan masalah IsiOtomatis, tetapi jika Anda menggunakan required="required"dan beberapa CSS Anda dapat meniru placeholder dan Chrome tidak akan mengambil tag.

Larutan

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/

Ryan Grush
sumber
Ini adalah satu-satunya solusi yang benar-benar berfungsi. Aku benar-benar tidak suka, tapi itu adalah keadaan payah kita sekarang :-(
kentcdodds
Pada 2017, ini masih berfungsi dengan baik. Hanya perlu skrip ini untuk memaksa inputfokus jika pengguna mengklik placeholder "palsu": $("label").on("click",function(){ $(this).prev().focus(); });Perhatikan bahwa labeltidak boleh sebelum input... Chrome menemukannya! Solusi kreatif yang bagus! +1
Louys Patrice Bessette
7

Saya benar-benar tidak suka membuat bidang tersembunyi, saya pikir membuatnya seperti itu akan sangat membingungkan dengan sangat cepat.

Pada kolom input yang ingin Anda hentikan dari lengkapi otomatis ini akan berfungsi. Buat bidang hanya baca dan pada fokus hapus atribut itu seperti ini

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

apa yang dilakukan adalah pertama-tama Anda harus menghapus atribut read only dengan memilih bidang dan pada saat itu kemungkinan besar Anda akan diisi dengan input pengguna Anda sendiri dan membungkuk autofill untuk mengambil alih

MZaragoza
sumber
1
Sayangnya, ini tidak lagi berfungsi :-( jsbin.com/sobise/edit?html,css
output
7

Nilai yang dimasukkan sebelumnya yang di-cache oleh chrome ditampilkan sebagai daftar pilih dropdown. Ini dapat dinonaktifkan dengan autocomplete = off, alamat yang disimpan secara eksplisit dalam pengaturan lanjutan chrome memberikan sembulan isi-otomatis ketika sebuah bidang alamat menjadi fokus. Hal ini dapat dinonaktifkan oleh autocomplete = "false" .Tapi itu akan memungkinkan chrome untuk menampilkan nilai cache dalam dropdown.

Pada bidang input html berikut ini akan mematikan keduanya.

Role="presentation" & autocomplete="off"

Saat memilih bidang input untuk alamat isi ulang otomatis, Chrome mengabaikan bidang input yang tidak memiliki elemen label html sebelumnya.

Untuk memastikan parser chrome mengabaikan bidang input untuk sembulan alamat pengisian otomatis, tombol tersembunyi atau kontrol gambar dapat ditambahkan antara label dan kotak teks. Ini akan memecah urutan penguraian chrome dari pembuatan pasangan -input label untuk pengisian otomatis. Kotak centang diabaikan saat menguraikan bidang alamat

Chrome juga mempertimbangkan atribut "untuk" pada elemen label. Dapat digunakan untuk memecah urutan parsing krom.

Momin
sumber
Aku cinta kamu. Satu-satunya solusi pada halaman ini yang benar-benar berfungsi.
Hari Davis Waterbury
Tidak berfungsi di tahun 2020.
Kai Noack
7

Yah karena kita semua memiliki masalah ini, saya menginvestasikan waktu untuk menulis ekstensi jQuery yang berfungsi untuk masalah ini. Google harus mengikuti markah html, bukan kita mengikuti Google

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

Cukup tambahkan ini ke file seperti / js / jquery.extends.js dan sertakan setelah jQuery. Menerapkannya ke setiap elemen formulir pada memuat dokumen seperti ini:

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

jsfiddle dengan tes

MagicSux
sumber
6

Coba jQuerykode berikut yang berhasil bagi saya.

if ($.browser.webkit) {
    $('input[name="password"]').attr('autocomplete', 'off');
    $('input[name="email"]').attr('autocomplete', 'off');
}
Priyanka
sumber
solusi luar biasa mengagumkan
DKR
Anda bisa menambahkan autocomplete="off"ke kolom input alih-alih menggunakan jquery. Dan omong-omong, ini tidak berhasil. Saran kata sandi Chrome masih muncul.
Kai Noack
6

Ada dua bagian untuk ini. Chrome dan peramban lain akan mengingat nilai yang dimasukkan sebelumnya untuk nama bidang, dan memberikan daftar pelengkapan otomatis kepada pengguna berdasarkan hal itu (terutama, input jenis kata sandi tidak pernah diingat dengan cara ini, untuk alasan yang cukup jelas). Anda dapat menambahkan autocomplete="off"untuk mencegah hal ini pada hal-hal seperti bidang email Anda.

Namun, Anda kemudian memiliki pengisi kata sandi. Sebagian besar browser memiliki implementasi bawaannya sendiri dan ada juga banyak utilitas pihak ketiga yang menyediakan fungsionalitas ini. Ini, kamu tidak bisa berhenti. Ini adalah pengguna yang membuat pilihan mereka sendiri untuk menyimpan informasi ini untuk secara otomatis diisi kemudian, dan sepenuhnya di luar ruang lingkup dan lingkup pengaruh aplikasi Anda.

Chris Pratt
sumber
Bagian pertama dari jawaban ini sepertinya tidak benar lagi: Chrome Bug
Joshua Drake
Saya tidak yakin apa yang sedang Anda bicarakan. "Bug" itu hanyalah pengganti Chromium untuk mengumpulkan kasus penggunaan orang autocomplete="off". Ini mungkin maksud adalah untuk menghapusnya, tapi itu tidak pernah secara eksplisit menyatakan, dan ada pasti tidak ada yang membutuhkan lompatan mental. Mereka mungkin hanya ingin mempertimbangkan alternatif atau cara yang lebih baik untuk mengobatinya. Apapun, itu masih bagian dari spec, dan sekali lagi, tidak ada indikasi bahwa ia akan meninggalkan spec juga. Dan, itu masih berfungsi di semua browser sejauh yang saya ketahui, termasuk Chrome.
Chris Pratt
Kami memiliki beberapa kasus di mana autocomplete = "off" tidak dihormati oleh Chrome.
Joshua Drake
1. Beberapa kasus anekdotal tidak berarti bukti. 2. Seperti yang saya katakan dalam jawaban saya, mengisi formulir ekstensi dan sejenisnya mungkin tidak dan sering tidak menghormati ini. Pada akhirnya, seperti semua hal, terserah klien, dan oleh karena itu pengguna. Yang dapat Anda lakukan adalah menyarankan agar tidak diisi ulang secara otomatis.
Chris Pratt
6

Sesuai laporan bug Chromium # 352347 Chrome tidak lagi menghormatiautocomplete="off|false|anythingelse" , baik pada formulir maupun pada input.

Satu-satunya solusi yang berhasil bagi saya adalah menambahkan bidang kata sandi dummy :

<input type="password" class="hidden" />
<input type="password" />
Gianluigi Zane Zanettini
sumber
6

Dengan mengatur autocompleteagar offberfungsi di sini saya punya contoh yang digunakan oleh google di halaman pencarian. Saya menemukan ini dari elemen inspeksi.

masukkan deskripsi gambar di sini

sunting : Jika offtidak berfungsi maka coba falseatau nofill. Dalam kasus saya ini berfungsi dengan versi chrome 48.0

mumair
sumber
5

Inilah hack kotor -

Anda memiliki elemen Anda di sini (menambahkan atribut yang dinonaktifkan):

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

Dan kemudian di bagian bawah halaman web Anda menaruh beberapa JavaScript:

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

Solusi berbeda, berbasis webkit. Seperti yang telah disebutkan, kapan pun Chrome menemukan bidang kata sandi, ia akan melengkapi email secara otomatis. AFAIK, ini terlepas dari autocomplete = [apa pun].

Untuk menghindari hal ini ubah jenis input ke teks dan terapkan font keamanan webkit dalam bentuk apa pun yang Anda inginkan.

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

<input type ="text" class="secure-font">

Dari apa yang saya lihat ini setidaknya seaman input type = kata sandi, itu copy dan paste aman. Namun itu rentan dengan menghapus gaya yang akan menghapus tanda bintang, tentu saja tipe input = kata sandi dapat dengan mudah diubah menjadi tipe input = teks di konsol untuk mengungkapkan setiap kata sandi yang diisi otomatis sehingga sangat mirip.

Michael.
sumber
Terima kasih! Ini adalah satu-satunya yang berfungsi di chrome 49. Metode sebelumnya rusak karena chrome tampaknya mengisi semua input dengan type="password"sekarang.
epelc
4

Satu-satunya cara yang bekerja untuk saya adalah: (diperlukan jQuery)

$(document).ready(function(e) {
    if ($.browser.webkit) {
        $('#input_id').val(' ').val('');
    }
});
pengguna3638028
sumber
4

Saya menghadapi masalah yang sama. Dan di sini adalah solusi untuk menonaktifkan nama pengguna & kata sandi diisi otomatis di Chrome (hanya diuji dengan Chrome saja)

    <!-- 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">
Thuong
sumber
perbaikan aneh tapi entah bagaimana itu satu-satunya hal yang bekerja untuk saya di chrome 48 :)
Jacka