Определение наличия клавиш на экранной клавиатуре мобильного устройства - PullRequest
8 голосов
/ 17 ноября 2011

Я добавляю несколько оптимизаций юзабилити на наш сайт.В рамках этого я настраиваю атрибут type текстовых полей, чтобы дать пользователю лучшие инструменты ввода для ожидаемого типа данных.

Одна проблема, с которой я столкнулся в мобильных устройствах с сенсорным экраном, заключается в том, что браузеры в разных ОСи даже разные браузеры в одной и той же ОС показывают разные экранные клавиатуры, когда используется тип ввода = "число".

Safari в iOS 4.3.3 (iPhone 4) и Chrome в Android 2.3.4 включают десятичное числоно Firefox на Android 2.3.4 этого не делает.

Я попытался добавить атрибут шага (step = "0.1") без каких-либо улучшений в Firefox.

Если я не могу отобразить десятичную точку, мне нужно будет показать Firefox полную QWERTY-клавиатуру, которая, очевидно, не сможет обеспечить лучший пользовательский опыт.Это также поднимает проблему перехвата браузера / устройства.Либо мне нужно будет установить QWERTY по умолчанию и показать цифровую панель горстке устройств, на которых я могу провести тестирование, либо установить цифровую панель по умолчанию и переключиться обратно на QWERTY на устройствах, которые, как я знаю, будут работать, последний вариантбудучи гораздо менее надежным, поскольку я не могу тестировать на всех когда-либо сделанных устройствах.

Тестирование на поддержку ввода type = "number" не является исправлением, поскольку, очевидно, браузер действительно поддерживает элемент, он просто не предлагаетДостаточно вариантов клавиатуры для ввода всех типов чисел.

Итак .. Мне было интересно, если кто-нибудь знает способ проверить наличие определенной клавиши (например, десятичной точки) в клавиатуре браузера / ОСприсваивает тип ввода, и / или, если у кого-то есть предложения получше, так как я совершенно новичок в мобильных устройствах.

Я должен также упомянуть, что здесь я использую JavaScript, так как это веб-сайт,не нативное приложение.

Спасибо:)

1 Ответ

1 голос
/ 17 мая 2016

К сожалению, Firefox не поддерживает тип числового ввода. Однако вы все равно можете попробовать использовать эти дополнительные атрибуты HTML для того, чтобы поле ввода запрашивало у пользователя числовой ввод

inputmode='numeric' 
pattern='[0-9]*'  //this makes it show only the numbers 0-9 without all the slashes and dashes and everything. Ignore this if that's not what you want
...