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

Я использую поле ввода HTML5 с type="number". Что касается некоторых документов, то можно ввести число с запятой (не с точкой), если я также использую атрибут lang="". Он работает в 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]+" /> 

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

Все, что я добавил, это в моих вводах для чисел: lang='en-150'

<input type='number' lang='en-150'/>

И он должен работать как в Chrome, так и в firefox.

Ответ 4

На данный момент я попробовал

    <html lang="en">

или же

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

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

Ответ 5

это решение работает для меня

<input type="number" value="0.00" min="0" max="10" step="0.01" id="Valore" name="Valore" />