У меня есть форма для ввода кредитной карты на сайте, который я поддерживаю. Внутренний код закодирован так, чтобы принимать двухзначный месяц истечения и двухзначный год в формате MM / YY. Похоже, что Chrome настроен на применение информации о кредитной карте в формате MM / YYYY, и поэтому, если у пользователя есть сохраненный CC с истечением 05/2023, он будет автоматически заполняться 05/20 и из-за маскирования ввода jquery обрежет 23 части. , Это приводит к отклонению платежа, который никто не хочет.
Вот основной пример формы.
<form action="/">
<h3>Label</h3>
<div>
<input name="CardHolderName" placeholder="Cardholder Name" type="text">
</div>
<div>
<input name="CreditCardNumber" placeholder="Credit Card Number" type="tel">
</div>
<div>
<label for="ExpirationDate">Expirion Date</label>
<input id="ExpirationDate" name="ExpirationDate" placeholder="MM/YY" type="tel">
</div>
<div>
<input name="Cvv2" placeholder="CVC" type="tel">
</div>
</form>
Я отсканировал https://wiki.whatwg.org/wiki/Autocomplete_Types и https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill и нашел autocomplete = "cc-exp", а также некоторые рекомендации по формату.
В более старой спецификации, которая устарела, формат несколько совпадает с тем, что делает Chrome, упоминая формат MM / YYYY, когда maxlength = "7". В этом случае maxlength = "5" должно дать мне то, что я хочу, но это не соответствует. Например, добавление maxlength = "5" работает в моем jsfiddle, но не работает на нашем веб-сайте. Однако добавление autocomplete = "cc-exp" и maxlength = "5" работает на веб-сайте с настольным Chrome, но не с Chrome на Android, как кажется. Chrome на моем телефоне Andrid по-прежнему автоматически заполняется с помощью MM / YYYY.
Более новая спецификация говорит, что форматом является ГГГГ-ММ, который не соответствует тому, что делает Chrome и, следовательно, бесполезен. Нет никаких упоминаний о каком-либо другом принятом формате.
Эта скрипка (https://jsfiddle.net/JonathanN/j054kbgx/) показывает все производные от моей исходной формы и все результаты, которые я видел. Было бы здорово, если бы был 100% гарантированный способ сообщить браузеру, что формат MM / YY. В противном случае было бы полезно иметь больше информации о том, как эти формы работают для других людей.