Magento Checkout Street Line Ошибка автозаполнения

12

Недавно я заметил, что у ряда заказов в нашем магазине Magento линия улицы 1 скопирована в линию улицы 2.

Я немного покопался, и, похоже, это связано с автозаполнением Chrome. Если вы посмотрите на поля формы, Magento использует биллинг [улица] [] и доставку [улица] [] в качестве имен полей для обеих линий улиц. Таким образом, Chrome не может определить, какой из них есть, и автоматически заполняет адресную строку 1 в обоих полях.

Существует некоторая информация, которую вы можете использовать, используя атрибут autocomplete в поле ввода формы, чтобы указать, к какому полю она должна быть привязана, но это не поддерживается и не работает. Фактически, если вы попытаетесь это сделать, он отключит автозаполнение во всей форме. Я также попытался изменить имя поля, но это нарушает контроль. Кажется, мне нужно было бы углубиться в код и изменить имя поля в форме и в любом месте, где на него ссылаются, отправлять в PayPal, сохранять в БД и т. Д. Это похоже на кошмар.

Кто-нибудь имел дело с этим и / или есть предложение?

BrianVPS
источник
Вы нашли решение этой проблемы? С автоматической печатью этикеток при отправке мы обнаруживаем только 20% этих ошибок, а иногда перевозчик не доставляет сообщения, так как «адрес указан неверно» ...
Я не нашел истинного, полного решения. Для нас единственной реальной проблемой было зафиксировать это на стороне дисплея при оформлении заказа, поэтому я добавил несколько JS, которые срабатывают при изменении строки 2, и, если оно точно соответствует строке 1, я очищаю его. Это не обрабатывает страницы учетной записи клиента при создании новых адресов, но меня это не так беспокоило.
BrianVPS
Отчасти это связано с «Как запустить автозаполнение Chrome» stackoverflow.com/questions/7223168/… Краткий ответ заключается в удовлетворении требований Regex для имени или метки в code.google.com/p/chromium/codesearch#chromium/ src / components /…
Рэй Фосс,

Ответы:

3

Вы также можете попробовать x-autocompletetype-attribute, хотя это экспериментальная функция:

<input x-autocompletetype="address-line1" />
<input x-autocompletetype="address-line2" />
Гиль Беркерс
источник
Очень полезная шпаргалка: ryan.mcgeary.org/2014/08/20/html5-autocomplete-cheatsheet
Mihai MATEI
2

Быстрое небольшое исправление, добавьте атрибут «только для чтения» к входным данным и атрибут onfocus со следующим фрагментом JS:

onfocus="this.removeAttribute('readonly');"

Так что все это должно выглядеть так:

<input type="text" title="Street Address 2" name="billing[street][]" id="billing:street2" value="" class="input-text " readonly onfocus="this.removeAttribute('readonly');">

Chrome не сможет автоматически заполнить поле, но пользователь может ввести его вручную, так как JS будет срабатывать при нажатии на поле.

Сделайте это и для ввода факса, Chrome любит копировать номер телефона в этот.

natecornell
источник
1
Добро пожаловать в magento SE. Я не думал, что только чтение хорошо - не идея остановить авто поле
Амит Бера
Из опыта люди склонны просто не замечать этого ... что совсем не хорошо и может стоить больших денег, основная трудность в его исправлении - это динамический характер полей.
Рэй Фосс
2

Атрибуты автозаполнения позволяют вам, разработчику, контролировать, как браузер должен заполнять данное поле формы. Например, если вы ожидаете адрес улицы, вы можете указать браузеру, что вы ожидаете его, с помощью autocomplete = "address-line1" . Это позволяет браузеру неправильно угадывать поля формы на вашем веб-сайте, что может привести к ухудшению работы пользователей.

https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill

Erfan
источник
2

Использование x-autocompletetype="address-line2"не работает с последней версией Chrome (65.0.3325.106), оно все равно будет дублировать первый адрес улицы на оба входа. Однако, похоже , autocomplete="address-line1"и autocomplete="address-line2"работает как положено.

Подробнее здесь: https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill#address

Code Commander
источник