Автозаполнение Safari для cc-exp не работает

Я пытаюсь заставить автозаполнение формы кредитной карты работать правильно в Safari, однако, похоже, оно полностью игнорирует автозаполнение для даты истечения срока действия. Независимо от того, использую ли я cc-exp или отдельные cc-exp-month/cc-exp-year, ни один из них не работает. Однако автозаполнение для cc-name и cc-number работает правильно, как и в Chrome.

Я смог свести проблему к очень простому примеру:

<form>
  <input type="text" autocomplete="cc-name" placeholder="name" />
  <input type="text" autocomplete="cc-number" placeholder="number" />
  <input type="text" autocomplete="cc-exp" placeholder="expiration" />
  <input type="text" autocomplete="cc-csc" placeholder="cvc" />
</form>

Что мне здесь не хватает? Я уже пробовал старый синтаксис, используя идентификаторы, имена и x-autocompletetype. Ни с каким успехом. Протестировано на Safari с 7 по 10, так что эта проблема, кажется, существует какое-то время, или я действительно упускаю что-то очевидное?

(примечание: чтобы проверить приведенный выше пример, убедитесь, что вы посещаете эту страницу через https, иначе она все равно не будет работать)


person PaulT    schedule 02.01.2017    source источник
comment
Та же проблема здесь. Похоже на баг сафари   -  person Shaun Lebron    schedule 23.01.2017
comment
Вы когда-нибудь догадывались об этом?   -  person Msencenb    schedule 30.05.2017
comment
Нет, так и не нашел решения для этого. Это заставляет меня думать, что я делаю что-то не так, так как это проблема во многих браузерах Safari.   -  person PaulT    schedule 16.06.2017


Ответы (1)


Я просто искал решение этой проблемы и заметил, что в старой форме, где у меня даже нет атрибута автозаполнения, это работает. Разница между формами заключается в том, что в старой форме я использую 2 раскрывающихся поля (теги SELECT) для месяца и года истечения срока действия в форматах ММ и ГГГГ.

Поиграв с разными вариантами, я пришел к выводу, что Safari хочет 2 отдельных поля, одно для ММ и одно для ГГГГ. Теперь у меня есть 2 текстовых поля:

<input type="text" name="CCExpiryMonth" id="CCExpiryMonth" value="" placeholder="MM" autocomplete="cc-exp">
<input type="text" name="CCExpiryYear" id="CCExpiryYear" value="" placeholder="YYYY" autocomplete="cc-exp"> 

Это работает в Сафари.

person Almir Ramic    schedule 27.11.2018
comment
Из обзора: Пожалуйста, РЕДАКТИРОВАТЬ свой ответ и исправить его, вместо того, чтобы публиковать несколько комментариев к нему. После этого удалите свои комментарии из ответа. См.: Как написать хороший ответ?. - person sɐunıɔןɐqɐp; 27.11.2018