Как ограничить количество символов в input number в пределах от 0 до 999.999?
У меня есть input, нужно ограничить вводимое значение от 0 до 999.999. Пробовал несколько вариантов:
<input type="number" min="0" max="999.999" step="0.001">
<input type="number" min="0" step="0.001" onkeypress="this.value=this.value.substring(0,4)">
Но так ничего и не вышло
Ответы (1 шт):
Автор решения: Yugofx
→ Ссылка
По сути, max и min это валидаторы. Но они никак не ограничивают ввод с клавиатуры и простой копи-паст.
Воспользуйтесь простым обработчиком события и через JS установите минимальное/максимальное значение при выходе за лимиты.
const inputs = document.querySelectorAll('input[type=number]');
Array.from(inputs).forEach(input => {
const min = +input.min;
const max = +input.max;
input.addEventListener('input', (e) => {
const value = +input.value;
if (value > max) { input.value = max }
else if (value < min) { input.value = min }
}
}));