ОНОВЛЕННЯ за 2017 рік: Схоже, відповідь від Katie має більш сучасну інформацію, ніж моя. Майбутні читачі: дайте свої голоси за її відповідь .
Це чудове запитання і питання, щодо якого документація напрочуд важко підійти. Власне, у багатьох випадках ви виявите, що функція автоматичного заповнення Chrome "просто працює". Наприклад, наступний фрагмент html створює форму, яка принаймні для мене (Chrome v. 18) автоматично заповнюється після натискання на перше поле:
<!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>
Однак ця відповідь незадовільна, оскільки вона залишає рішення у царині "магії". Копаючи глибше, я дізнався, що Chrome (та інші браузери, що підтримують автозаповнення) в основному покладаються на контекстуальні підказки для визначення типу даних, які слід заповнити елементами форми. Приклади таких контекстуальних підказок включають name
вхідний елемент, текст, що оточує елемент, та будь-який текст заповнювача.
Однак нещодавно команда Chrome визнала, що це незадовільне рішення, і вони почали наполягати на стандартизації в цьому питанні. Дуже інформативне повідомлення групи веб-майстрів Google нещодавно обговорювало це питання, пояснюючи:
На жаль, дотепер веб-майстрам було важко переконатися, що Chrome та інші постачальники форм можуть правильно розібрати їх форму. Існують деякі стандарти; але вони покладають великі тягарі на впровадження веб-сайту, тому на практиці вони не використовуються багато.
("Стандарти", на які вони посилаються, є більш пізньою версією специфікації, згаданої у відповіді Аваланхіса вище.)
Пост Google продовжує описувати запропоноване ними рішення (яке зустрічається з суттєвою критикою в коментарях до публікації). Вони пропонують для цього використовувати новий атрибут:
Просто додайте атрибут до елемента введення, наприклад, поле електронної адреси може виглядати так:
<input type=”text” name=”field1” x-autocompletetype=”email” />
... де x-
виступає "експериментальний", і він буде видалений, якщо & коли це стане стандартом. Прочитайте публікацію для отримання більш детальної інформації, або якщо ви хочете копати глибше, ви знайдете більш повне пояснення пропозиції на wiki wiki .
ОНОВЛЕННЯ:
Як зазначено в цих проникливих відповідях , усі регулярні вирази, які Chrome використовує для ідентифікації / розпізнавання загальних полів, можна знайти autofill_regex_constants.cc.utf8
. Отже, щоб відповісти на початкове запитання, просто переконайтеся, що назви ваших HTML-полів збігаються з цими виразами. Деякі приклади включають:
- ім'я:
"first.*name|initials|fname|first$"
- прізвище:
"last.*name|lname|surname|last$|secondname|family.*name"
- електронна пошта:
"e.?mail"
- адреса (рядок 1):
"address.*line|address1|addr1|street"
- ЗІП код:
"zip|postal|post.*code|pcode|^1z$"