Я добавляю на наш сайт несколько оптимизаций для удобства использования мобильных устройств. В рамках этого я настраиваю атрибут type текстовых полей, чтобы предоставить пользователю лучшие инструменты ввода для ожидаемого типа данных.
Одна проблема, с которой я столкнулся в мобильных устройствах с сенсорным экраном, заключается в том, что браузеры в разных ОС и даже разные браузеры в одной и той же ОС показывают разные экранные клавиатуры при использовании input type = "number".
Safari на iOS 4.3.3 (iPhone 4) и Chrome на Android 2.3.4 включает десятичную точку, а Firefox на Android 2.3.4 - нет.
Я попытался добавить атрибут step (step = "0.1") без каких-либо улучшений в Firefox.
Если я не могу показать десятичную точку, мне нужно будет показать Firefox полную клавиатуру QWERTY, что, очевидно, не будет способствовать лучшему взаимодействию с пользователем. Это также поднимает проблему обнюхивания браузера / устройства.Либо мне нужно сделать QWERTY по умолчанию и показать цифровую клавиатуру нескольким устройствам, на которых я действительно могу протестировать, либо сделать цифровую клавиатуру по умолчанию и переключиться обратно на QWERTY на устройствах, которые, как я знаю, это сломается, последний вариант будучи гораздо менее надежным, поскольку я не могу протестировать на всех когда-либо созданных устройствах.
Тестирование поддержки input type = "number" не является исправлением, поскольку очевидно, что браузер поддерживает этот элемент, он просто не предлагает достаточно вариантов клавиатуры для ввода всех типов чисел.
Итак ... Мне было интересно, знает ли кто-нибудь способ проверить наличие определенной клавиши (например, десятичной точки) на клавиатуре, которую браузер / ОС назначает типу ввода, и / или кто-нибудь еще есть несколько предложений получше, так как я новичок в мобильных устройствах.
Я также должен упомянуть, что здесь я использую JavaScript, так как это веб-сайт, а не собственное приложение.
Спасибо :)