Support to <input type=number>
все еще очень ограничены, неполным и b uggy.
Например, в IE 10 и Firefox 19 нет поддержки. Элемент возвращается к элементу <input type=text>
, что означает, что любая строка принимается как входной и передается на сервер как таковой, без проверки ,
В браузерах, поддерживающих его, например, в Chrome, поведение варьируется и, как ожидается, будет изменяться, поскольку HTML5 CR definition намеренно оставляет его открытым: браузер должен как-то предоставить виджет для ввода цифр и гарантировать, что данные, посланные на сервер, верны в соответствии с атрибутами элемента (в пределах заданного диапазона и т. д.).
На практике реализация зависит от локали браузера, и вы не можете контролировать это как автора. Это означает, что браузер может принять 88.2, или он может принять 88,2 (и внутренне преобразовать его в 88.2), или он может принять оба, или он может в принципе принимать вход только в иероглифы (и внутренне преобразовывать его в каноническая форма). Он может даже анализировать ввод пользователя, так что любые лишние символы просто отбрасываются, а это значит, что 88FOO, а также 88.2 могут быть усечены до 88, когда запятая является десятичным разделителем.
Что происходит в вашем случае, сложно решить, поскольку браузеры и платформы не описаны, и непонятно, что получает сервер. Но главное, что вообще нельзя полагаться на <input type=number>
. Он может использоваться в контролируемой среде, где каждый использует ту же версию одного и того же браузера в той же операционной системе, вплоть до языковой версии и языковых настроек. В противном случае используйте <input type=text>
для ввода цифр и проанализируйте входную серверную сторону и, возможно, предварительно проверьте его на стороне клиента и убедитесь, что вы информируете пользователя о ожидаемом формате ввода (например, десятичная запятая или десятичная точка).
Я считаю, '<входной тип = "число">' принимает только целые числа в качестве допустимых значений. Любые допустимые десятичные знаки, вероятно, являются неправильной/нереализованной проверкой браузером. –
Примечание: европейцы используют запятую для десятичной метки. Можете ли вы заставить культуру установить где-нибудь? –
Я знаю, что мы используем разные метки, но нет ли способа сделать это НЕ удалять точку? Если другой парень входит в 88.2, он появляется как 882, его действительно раздражает. –