Поле ввода HTML5 с типом= "число" не принимает запятую в браузере Chrome

Я использую поле ввода HTML5 с type="number". Что касается некоторых документов, то можно ввести число с запятой (не с точкой), если я также использую . Это работает в Firefox, но не в Chrome (не принимает запятую). Как я могу заставить Chrome принять запятую в поле ввода. Моя проблема в том, что наши немецкие пользователи ожидают, что они могут ввести запятую вместо точки.

https://jsfiddle.net/byte2702/y3Lpfw7m/

Please enter a number with comma: <br/>
<input id="num" type="number" step="any" lang="de" pattern="-?[0-9]+[,.]*[0-9]+" /> 

3 ответов


на данный момент (30/2017) ответ Антуана Тири, похоже, больше не действителен в Chrome (моя версия 60.0.3112.113). К сожалению, у меня нет другого предложения, кроме моделирования type="number" с помощью javascript.


на самом деле, если я правильно читаю документацию, pattern is не поддерживается на type=number. следовательно, придерживайтесь type=text и затем добавить pattern="..." для проверки передней части. на следующем шаге вам нужно будет преобразовать текстовый ввод в реальное число, если он не совместим с форматом JavaScript / computing.

2017 и все еще нет хорошего решения для этой общей проблемы...


Что касается сейчас, я пробовал

    <html lang="en">

или

    <input type="number" lang="en">

и это позволило мне ввести любую: запятую или точку. Я тестировал его на настольных Ubuntu и мобильных Android в Firefox и Chrome.