Принудительно вводить десятичную точку вместо запятой при вводе числа в HTML5 (на стороне клиента) - PullRequest
61 голосов
/ 30 мая 2011

Я видел, что некоторые браузеры локализуют нотацию чисел input type="number".

Итак, теперь в полях, где мое приложение отображает координаты долготы и широты, я получаю что-то вроде «51,983», где оно должно быть «51,982559». Мой обходной путь - вместо этого использовать input type="text", но я бы хотел использовать ввод числа с правильным отображением десятичных дробей.

Есть ли способ заставить браузеры использовать десятичную точку при вводе числа независимо от локальных настроек на стороне клиента?

(Само собой разумеется, что в моем приложении я в любом случае исправляю это на стороне сервера, но в моей настройке мне также нужно, чтобы оно было правильным на стороне клиента (из-за некоторого JavaScript)).

Заранее спасибо.

UPDATE На данный момент, проверяя в Chrome версии 28.0.1500.71 m в Windows 7, ввод числа просто не принимает десятичные дроби, отформатированные через запятую. Предлагаемые предложения с атрибутом step не работают.

http://jsfiddle.net/AsJsj/

Ответы [ 12 ]

0 голосов
/ 05 декабря 2011

одна опция - javascript parseFloat() ... никогда не анализировать "text chain" --> 12.3456 с точкой на int ... 123456 (int удалить точку), анализировать текстовую цепочку на FLOAT ...

чтобы отправить эти координаты на сервер, сделайте это, отправив текстовую цепочку. HTTP отправляет только TEXT

в клиенте, не разбирайте входные координаты с помощью "int", работайте стекстовые строки

если вы распечатываете шнуры в html с помощью php или аналогичного ... переходите к тексту и печатаете в html

0 голосов
/ 30 мая 2011

Насколько я понимаю, HTML5 input type="number всегда возвращает input.value как string.

Очевидно, input.valueAsNumber возвращает текущее значение в виде числа с плавающей запятой. Вы можете использовать это, чтобы вернуть значение, которое вы хотите.

См. http://diveintohtml5.info/forms.html#type-number

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...