Существует несколько трюков для отображения различных клавиатур на мобильных устройствах для входов HTML 5 (т.е. тегов <input>
).
Например, некоторые из них задокументированы на веб-сайте Apple, Настройка клавиатуры для веб-просмотров.
Они отлично подходят для удобства использования, но когда дело доходит до ввода для международных почтовых кодов (в основном числовых, но разрешенных букв), у нас остались некоторые плохие варианты. Большинство людей рекомендуют использовать трюк pattern="\d*"
для отображения цифровой клавиатуры, но это не допускает ввода букв.
Тип ввода type="number"
показывает обычную клавиатуру, но перемещается в числовой формат:
Это хорошо работает для устройств iOS, но это заставляет Chrome думать, что ввод должен быть числом и даже изменяет поведение ввода (приращение вверх/вниз и уменьшение значения).
Есть ли способ получить iOS по умолчанию для числового макета, но все же разрешить буквенно-цифровой ввод?
В принципе, я хочу поведение iOS для type="number"
, но я хочу, чтобы поле вел себя как обычное текстовое поле в настольных браузерах. Возможно ли это?
UPDATE:
Приобретение пользовательского агента для iOS и использование типа ввода type="number"
не является опцией. type="number"
не предназначен для строковых значений (например, почтовых кодов), и он имеет другие побочные эффекты (например, удаление ведущих нулей, разделителей запятых и т.д.), которые делают его менее идеальным для почтовых кодов.