Увімкнення дробів / центів / десяткових знаків для введення цифр
Для того, щоб дозволити дроби (центи) на введенні числа HTML5, вам потрібно вказати атрибут "step" = = any:
<input type="number" min="1" step="any" />
Це спеціально не дозволить Chrome відображати помилку при введенні десяткової / дробової валюти у вхідні дані. Mozilla, IE тощо ... не помиляйтесь, якщо забудете вказати step="any"
. Специфікація W3C стверджує, що step = "any", дійсно, має бути необхідним для отримання десяткових знаків. Отже, вам неодмінно слід ним скористатися. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#step
Зверніть увагу, що якщо ви хочете, щоб кнопки вгору / вниз виконували певну деталізацію, тоді ви повинні вказати числовий крок, такий як ".01".
Крім того, введення цифр зараз досить широко підтримується (> 90% користувачів).
Які варіанти введення існують для грошей / валюти?
Заголовок питання з тих пір змінився і набув дещо іншого значення. Можна прийняти як введення цифр, так і текст, щоб прийняти гроші / десяткові знаки.
Для поля введення валюти / грошей рекомендується використовувати тип введення числа та вказати відповідні атрибути, як зазначено вище. Станом на 2020 рік, не існує специфікації W3C щодо фактичного типу введення валюти або грошей.
Основною причиною є те, що він автоматично примушує користувачів вводити дійсний стандартний формат валюти та забороняє будь-який буквено-цифровий текст. З огляду на це, ви, звичайно, можете використовувати звичайний введення тексту та виконувати певну обробку, щоб захопити лише числове / десяткове значення (у цьому випадку також має бути перевірка на стороні сервера).
В ОП детально викладено вимоги щодо символів валюти та коми. Якщо ви хочете подібну логіку / форматування (станом на 2020 рік), вам потрібно буде створити власну логіку JS для введення тексту або знайти плагін.
step
атрибут із десятковими знаками. Дивіться: Чи існує тип плаваючого введення в HTML (5)?