Как я могу запретить Chrome форматировать номер формата HTML5

Мне нужно создать форму для мобильного сайта, на которой люди могут ввести число с десятичной меткой, например 5.3.

Чтобы посетители могли вводить цифры, я хочу заставить смартфон отобразить экранную клавиатуру с символами, которые пользователь, скорее всего, войдет.

Можно отображать номера на экранной клавиатуре, добавив тип ввода HTML5 type="number".

К сожалению, Google Chrome начинает проверять ввод и позволяет вводить только интергеры. Таким образом, пользователь имеет номера на экранной клавиатуре, но не может ввести номер, который необходимо ввести.

Как я могу отображать цифры на экранной клавиатуре и по-прежнему разрешать пользователям, просматривающим веб-сайт с Google Chrome, вводить числа с десятичными знаками?

Ответ 1

Создайте поле следующим образом:

<input type="number" step="0.1" />

Это позволит Chrome правильно проверять и не вмешиваться. По умолчанию, если вы не задаете значение шага 1, но это может быть любое положительное плавающее значение.

Протестировано в Chrome 10,12 с помощью доктринов HTML5 и XHTML (оба работают). Пример HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <form>
            <input type="number" step="0.1" />
        </form>
    </body>
<!-- doctypes
html5: <!DOCTYPE html>
html4: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
xtml: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->
</html>