UPDATE untuk 2017: Sepertinya jawaban dari Katie memiliki lebih banyak informasi terkini daripada milik saya. Pembaca masa depan: berikan suara Anda untuk jawabannya .
Ini adalah pertanyaan yang bagus dan pertanyaan yang sulit untuk didokumentasikan. Sebenarnya, dalam banyak kasus, Anda akan menemukan bahwa fungsi IsiOtomatis Chrome "berfungsi". Misalnya, cuplikan html berikut ini menghasilkan formulir yang, setidaknya untuk saya (Chrome v. 18), secara otomatis diisi setelah mengklik di bidang pertama:
<!DOCTYPE html>
<html>
<body>
<form method="post">
First name:<input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
E-mail: <input type="text" name="email" /><br />
Phone: <input type="text" name="phone" /><br />
Address: <input type="text" name="address" /><br />
</form>
</body>
</html>
Namun, jawaban ini tidak memuaskan, karena meninggalkan solusi di bidang "sihir." Menggali lebih dalam, saya mengetahui bahwa Chrome (dan peramban lain yang diaktifkan dengan pengisian otomatis) terutama mengandalkan petunjuk kontekstual untuk menentukan jenis data yang harus diisi ke dalam elemen formulir. Contoh petunjuk kontekstual tersebut termasuk name
elemen input, teks yang mengelilingi elemen, dan teks placeholder apa pun.
Namun, baru-baru ini, tim Chrome mengakui bahwa ini adalah solusi yang tidak memuaskan, dan mereka telah mulai mendesak untuk standardisasi dalam masalah ini. Posting yang sangat informatif dari grup Google Webmaster baru-baru ini membahas masalah ini, menjelaskan:
Sayangnya, hingga kini sulit bagi webmaster untuk memastikan bahwa Chrome dan penyedia pengisian formulir lainnya dapat menguraikan formulir mereka dengan benar. Ada beberapa standar; tetapi mereka memberatkan beban pada implementasi situs web, sehingga mereka tidak banyak digunakan dalam praktik.
("Standar" yang mereka maksudkan adalah versi terbaru dari spesifikasi yang disebutkan dalam jawaban Avalanchi di atas.)
Posting Google selanjutnya menggambarkan solusi yang diusulkan (yang disambut oleh kritik yang signifikan dalam komentar posting). Mereka mengusulkan penggunaan atribut baru untuk tujuan ini:
Cukup tambahkan atribut ke elemen input, misalnya bidang alamat email mungkin terlihat seperti:
<input type=”text” name=”field1” x-autocompletetype=”email” />
... di mana x-
singkatan dari "eksperimental" dan akan dihapus jika & ketika ini menjadi standar. Baca posting untuk detail lebih lanjut, atau jika Anda ingin menggali lebih dalam, Anda akan menemukan penjelasan proposal yang lebih lengkap tentang whatwg wiki .
PEMBARUAN:
Seperti yang ditunjukkan dalam jawaban yang berwawasan luas ini , semua ekspresi reguler yang digunakan Chrome untuk mengidentifikasi / mengenali bidang umum dapat ditemukan di . Jadi untuk menjawab pertanyaan awal, pastikan nama untuk bidang html Anda dicocokkan dengan ekspresi ini. Beberapa contoh termasuk:autofill_regex_constants.cc.utf8
- nama depan:
"first.*name|initials|fname|first$"
- nama keluarga:
"last.*name|lname|surname|last$|secondname|family.*name"
- surel:
"e.?mail"
- alamat (baris 1):
"address.*line|address1|addr1|street"
- Kode Pos:
"zip|postal|post.*code|pcode|^1z$"
Pertanyaan ini cukup lama tetapi saya memiliki jawaban yang diperbarui !
Berikut ini tautan ke dokumentasi WHATWG untuk mengaktifkan pelengkapan otomatis.
Google menulis panduan yang cukup bagus untuk mengembangkan aplikasi web yang ramah untuk perangkat seluler. Mereka memiliki bagian tentang cara memberi nama input pada formulir agar mudah menggunakan pengisian otomatis. Meskipun ditulis untuk seluler, ini berlaku untuk desktop dan seluler!
Cara Mengaktifkan LengkapiOtomatis pada formulir HTML Anda
Berikut adalah beberapa poin penting tentang cara mengaktifkan pelengkapan otomatis:
<label>
untuk semua<input>
bidang Andaautocomplete
atribut ke<input>
tag Anda dan isi dengan menggunakan panduan ini .name
danautocomplete
atribut dengan benar untuk semua<input>
tagContoh :
Cara memberi nama
<input>
tag AndaUntuk memicu pelengkapan otomatis, pastikan Anda memberi nama
name
danautocomplete
atribut dengan benar di<input>
tag Anda . Ini secara otomatis memungkinkan pelengkapan otomatis pada formulir. Pastikan juga punya<label>
! Informasi ini juga dapat ditemukan di sini .Berikut cara memberi nama input Anda:
name
:name fname mname lname
autocomplete
:name
(untuk nama lengkap)given-name
(untuk nama depan)additional-name
(untuk nama tengah)family-name
(untuk nama belakang)<input type="text" name="fname" autocomplete="given-name">
name
:email
autocomplete
:email
<input type="text" name="email" autocomplete="email">
name
:address city region province state zip zip2 postal country
autocomplete
:street-address
address-line1
address-line2
address-level1
(Negara atau Provinsi)address-level2
(kota)postal-code
(Kode Pos)country
name
:phone mobile country-code area-code exchange suffix ext
autocomplete
:tel
name
:ccname cardnumber cvc ccmonth ccyear exp-date card-type
autocomplete
:cc-name
cc-number
cc-csc
cc-exp-month
cc-exp-year
cc-exp
cc-type
name
:username
autocomplete
:username
name
:password
autocomplete
:current-password
(untuk formulir masuk)new-password
(untuk formulir pendaftaran dan penggantian kata sandi)Sumber daya
sumber
Dari pengujian saya,
x-autocomplete
tag tidak melakukan apa pun. Alih-alih menggunakanautocomplete
tag pada tag input Anda, dan tetapkan nilainya sesuai dengan spesifikasi HTML di sini http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms. html # autofill-field .Contoh:
Tag formulir induk membutuhkan autocomplete = "on" dan method = "POST".
sumber
on
,off
ataudefault
. Jadi ini mark up yang tidak valid dan akan cenderung inkonsistensi. Saya benar-benar berpikir penempatan dalam atribut autocomplete tidak relevan. Saya kira itu terlihat pada semua atribut dan autocomplete kebetulan menjadi salah satu yang diperiksa.Anda perlu memberi nama elemen dengan tepat sehingga browser akan mengisinya secara otomatis.
Berikut spesifikasi IETF untuk ini:
http://www.ietf.org/rfc/rfc3106.txt 1
sumber
Saya baru saja bermain diseluruh spec dan mendapat contoh kerja yang bagus - termasuk beberapa bidang lagi.
JSBIN
Ini berisi 2 area alamat yang terpisah dan juga jenis alamat yang berbeda. Mengujinya juga di iOS 8.1.0 dan sepertinya itu selalu mengisi semua bidang sekaligus, sementara desktop otomatis mengisi krom dengan alamat.
sumber
Sepertinya kita akan mendapatkan kontrol lebih besar tentang fitur isi-otomatis ini, ada API eksperimental baru yang datang ke Chrome Canary, yang dapat digunakan untuk mengakses data setelah meminta pengguna untuk itu:
http://www.chromium.org/developers/using-requestautocomplete http://blog.alexmaccaw.com/requestautocomplete
info baru oleh google:
http://googlewebmastercentral.blogspot.de/2015/03/helping-users-fill-out-online-forms.html
https://developers.google.com/web/fundamentals/input/form/label-and-name-inputs#use-metadata-to-enable-auto-complete
sumber
Inilah jawabannya:
Ini berfungsi: http://jsfiddle.net/68LsL1sq/1/
<label for="name">Nom</label>
Ini bukan: http://jsfiddle.net/68LsL1sq/2/
<label for="name">No</label>
Satu-satunya perbedaan adalah pada label itu sendiri. "Nom" berasal dari "Nama" atau "Nome" dalam bahasa Portugis.
Jadi inilah yang Anda butuhkan:
<label for="id_of_field">Name</label>
<input id="id_of_field"></input>
Tidak ada lagi.
sumber
Ini daftar baru "nama" IsiOtomatis Google. Ada semua nama yang didukung dalam bahasa apa pun yang diizinkan.
autofill_regex_constants.cc
sumber
Google sekarang menyediakan dokumentasi untuk ini:
Bantu pengguna checkout lebih cepat dengan IsiOtomatis | Web | Google Developers
dan
Buat Formulir Luar Biasa: Gunakan metadata untuk mengaktifkan lengkapi-otomatis | Web | Google Developers
sumber
Dalam kasus saya,
$('#EmailAddress').attr('autocomplete', 'off');
tidak berfungsi. Tetapi berikut ini bekerja pada chrome Versi 67 oleh jQuery.sumber