Błąd autouzupełniania Magento Checkout Street Line


12

Zauważyłem ostatnio, że wiele zamówień w naszym sklepie Magento zostało skopiowanych do pierwszej linii ulicy.

Zrobiłem trochę kopania i wydaje się, że jest to związane z autouzupełnianiem Chrome. Jeśli spojrzysz na pola formularza, Magento używa fakturowania [ulica] [] i wysyłki [ulica] [] jako nazw pól dla obu linii ulic. Chrome nie może więc ustalić, który z nich jest, i automatycznie wypełnia wiersz 1 w obu polach.

Wokół pola wprowadzania znajduje się pewna informacja, której można użyć atrybutu autouzupełniania, aby wskazać, z którym polem powinien się połączyć, ale nie jest to obsługiwane i nie działa. W rzeczywistości, jeśli spróbujesz to zrobić, spowoduje to wyłączenie autouzupełniania w całym formularzu. Próbowałem także zmienić nazwę pola, ale to psuje kasę. Wygląda na to, że muszę zagłębić się głęboko w kod i zmienić nazwę pola w formularzu i gdziekolwiek się do niego odwołuje, przesyła do PayPal, zapisuje w DB itp. To wydaje się koszmarem.

Czy ktoś poradził sobie z tym i / lub miał jakieś sugestie?


Czy znalazłeś rozwiązanie tego problemu? Dzięki automatycznemu drukowaniu etykiet do wysyłki wychwytujemy tylko 20% tych błędów, a czasami przewoźnik nie dostarcza, ponieważ „adres jest nieprawidłowy” ...

Nie znalazłem prawdziwego, kompletnego rozwiązania. Dla nas jedynym poważnym problemem było naprawienie go po stronie wyświetlacza przy kasie, więc dodałem trochę JS, który odpala przy zmianie linii 2 i, jeśli dokładnie pasuje do linii 1, usuwam ją. To nie obsługuje stron kont klientów podczas tworzenia nowych adresów, ale nie martwiłem się tym.
BrianVPS,

Jest to częściowo związane z „Jak uruchomić autouzupełnianie Chrome” stackoverflow.com/questions/7223168/ ... Krótka odpowiedź brzmi: spełnienie wymagań Regex dla nazwy lub etykiety w code.google.com/p/chromium/codesearch#chromium/ src / components /…
Ray Foss

Odpowiedzi:



2

Szybka mała poprawka, dodaj do danych wejściowych atrybut „tylko do odczytu” i atrybut onfocus z następującym fragmentem kodu JS:

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

Wszystko powinno wyglądać następująco:

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

Chrome nie będzie mógł automatycznie wypełnić pola, ale użytkownik może wpisać go ręcznie, ponieważ JS zostanie uruchomione po kliknięciu w pole.

Zrób to również w przypadku wprowadzania faksu, Chrome lubi kopiować numer telefonu na ten.


1
, witamy w Magento SE. Nie sądziłem, że tylko dobre rozwiązanie nie jest pomysłem na zatrzymanie automatycznego pola
Amit Bera

Z doświadczenia wynika, że ​​ludzie po prostu go przeoczą ... co wcale nie jest dobre i może kosztować dużo pieniędzy, główną trudnością w jego naprawie jest dynamiczny charakter pól.
Ray Foss,

2

Atrybuty autouzupełniania są dla ciebie, programisty, sposobem kontrolowania, w jaki sposób przeglądarka powinna zapełniać dane pole formularza. Na przykład, jeśli oczekujesz adresu, możesz wskazać przeglądarce, że go oczekujesz, używając autouzupełniania = "linia-adresu1" . Zapobiega to niepoprawnemu odgadywaniu pól formularza w przeglądarce, co może powodować słabe wrażenia użytkownika.

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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.