Как ограничить водимое число в input number до тысячной (0.001, 555.012...)?
Мне нужно что-бы пользователь мого ввести число от 0.000 до 9999.000 и все числа в диапазоне между ними. К примеру: 0.1, 10.115, 110.999, 9999.011... Пробовал такой вариант:
<input type="number" min="0" max="999.999" step="0.001">
const inputs = document.querySelectorAll('input[type=number]');
Array.from(inputs).forEach(input => input.addEventListener('input', (e) => {
const value = +e.target.value;
const min = +e.target.min;
const max = +e.target.max;
if (value > max) {
input.value = 999.999
} else if (value < min) {
input.value = 0
}
}));
Вышло не то что нужно.
Ответы (1 шт):
Автор решения: Alexander Lonberg
→ Ссылка
const inputs = document.querySelectorAll('input[type=number]')
function replace() {
const re = /(?<=\d{3})(\d+)/g
if (re.test(this.value)) {
this.value = this.value.replace(re, '')
}
}
Array.from(inputs).forEach((i) => i.addEventListener('input', replace))
<input type="number" min="0" max="999.999" step="0.001">
<input type="number" min="0" max="999.999" step="0.001">
PS: и функции необходимо устанавливать одну. В варианте выше это приведет к созданию множества функций.