Большинство браузеров этого не делают, но на основе WebKit (например, Chrome).Неправильно, я мог бы добавить, так как я полагаю, что в спецификации HTML5 указано, что такое форматирование не должно выполняться.
Это серьезная проблема для меня, когда речь идет о элементах ввода HTML5;что они недостаточно настраиваемы и почти непригодны для использования в любой производственной среде из-за разного поведения клиента.Но это (я надеюсь) изменится, когда спецификация станет более зрелой, так что разработчик может решать вещи вместо браузера.Другой пример - как required
работает в некоторых браузерах, и как определяется сообщение об ошибке.
Решение ваших проблем - не использовать type="number"
, а вместо этого вернуться к использованию type="text"
идобавив атрибут pattern
со значением регулярного выражения "[0-9]*"
, чтобы он отображался как ввод числа по крайней мере на телефонах Apple.Однако я думаю, что не на Android.
Что вы можете сделать, это проверить запросы, что это за клиент, и использовать разные методы в зависимости от этого.Например, type="text" pattern="[0-9]*"
для iPhone и настольных компьютеров и type="number"
для Android.