Параметр minimumValue в библиотеке AutoNumeric
определяет минимально допустимое значение, которое может быть введено в
поле. Ограничение применяется как при ручном вводе, так и при
программной установке значения через API библиотеки.
Параметр используется для:
Без указания minimumValue библиотека использует
стандартное значение:
minimumValue: '-10000000000000'
Это означает, что поле по умолчанию поддерживает большие отрицательные значения.
new AutoNumeric('#price', {
minimumValue: '0'
});
В этом примере поле не позволит вводить значения меньше нуля.
Несмотря на то что значение представляет число,
minimumValue задаётся строкой.
Правильный вариант:
minimumValue: '10'
Неправильный вариант:
minimumValue: 10
Строковый формат используется для:
Один из наиболее распространённых сценариев — запрет отрицательных значений.
new AutoNumeric('#amount', {
minimumValue: '0'
});
Теперь пользователь сможет вводить:
0
1
25
1000
Но не сможет:
-1
-500
Параметр поддерживает дробные значения.
new AutoNumeric('#percent', {
minimumValue: '0.01'
});
Допустимые значения:
0.01
1.5
25.75
Недопустимые:
0
-1
0.001
Поле может разрешать отрицательные значения, но только до определённого порога.
new AutoNumeric('#temperature', {
minimumValue: '-50'
});
Разрешённый диапазон:
-50 и выше
Запрещённые значения:
-51
-100
maximumValueНа практике minimumValue почти всегда используется
вместе с maximumValue.
new AutoNumeric('#discount', {
minimumValue: '0',
maximumValue: '100'
});
Поле превращается в строго ограниченный диапазон:
0–100
Такой подход особенно полезен для:
Когда пользователь пытается ввести значение ниже допустимого минимума, AutoNumeric:
Пример:
new AutoNumeric('#quantity', {
minimumValue: '1'
});
Попытка ввести:
0
будет отклонена.
Ограничение работает не только при печати, но и при вставке через clipboard.
Если пользователь вставит:
-500
при:
minimumValue: '0'
значение не будет принято.
Минимальные значения особенно важны при работе с денежными полями.
new AutoNumeric('#salary', {
currencySymbol: '$',
minimumValue: '0'
});
Теперь поле зарплаты не позволит вводить отрицательные суммы.
new AutoNumeric('#euro', {
currencySymbol: '€',
decimalCharacter: ',',
digitGroupSeparator: '.',
minimumValue: '0'
});
Поддерживаются значения:
1.000,50 €
5,99 €
Но не:
-10,00 €
new AutoNumeric('#tax', {
suffixText: '%',
minimumValue: '0',
maximumValue: '100'
});
Типичный диапазон для:
AutoNumeric корректно обрабатывает длинные значения благодаря строковому формату.
new AutoNumeric('#bigNumber', {
minimumValue: '-999999999999999'
});
Javascript Number имеет ограничения точности, однако AutoNumeric использует собственную внутреннюю обработку строковых значений.
Параметр можно менять после инициализации.
const an = new AutoNumeric('#price', {
minimumValue: '0'
});
an.update({
minimumValue: '100'
});
После обновления минимальное значение изменится на
100.
const settings = an.getSettings();
console.log(settings.minimumValue);
Результат:
100
Метод set() также учитывает ограничения диапазона.
an.set(-50);
Если минимум установлен как:
minimumValue: '0'
значение не будет применено.
Если минимальное значение равно нулю:
minimumValue: '0'
символ - становится недоступным.
Это влияет на:
new AutoNumeric('#count', {
decimalPlaces: 0,
minimumValue: '1'
});
Поле принимает:
1
2
3
Но не:
0
-1
new AutoNumeric('#loan', {
currencySymbol: '$',
minimumValue: '1000',
maximumValue: '1000000'
});
Подходит для:
Иногда требуется разрешить уход в минус только до определённого значения.
new AutoNumeric('#balance', {
minimumValue: '-5000',
maximumValue: '100000'
});
Теперь пользователь не сможет превысить кредитный лимит.
Если поле пустое, ограничение ещё не применяется, пока не введено число.
Поведение зависит от:
emptyInputBehavior;defaultValueOverride;unformatOnSubmit.overrideMinMaxLimitsПараметр overrideMinMaxLimits управляет поведением
библиотеки при выходе за границы диапазона.
Пример:
new AutoNumeric('#value', {
minimumValue: '0',
maximumValue: '100',
overrideMinMaxLimits: 'ignore'
});
В этом режиме библиотека может временно допускать значения вне диапазона.
Возможные режимы:
| Режим | Описание |
|---|---|
ignore |
игнорировать ограничения |
invalid |
помечать как невалидное |
floor |
жёстко ограничивать минимум |
ceiling |
жёстко ограничивать максимум |
<input id="price">
new AutoNumeric('#price', {
minimumValue: '0'
});
При отправке формы значение уже гарантированно находится в допустимом диапазоне.
Ограничение минимального значения:
Неправильно:
minimumValue: 0
Правильно:
minimumValue: '0'
Ошибка:
minimumValue: '100',
maximumValue: '10'
Диапазон становится некорректным.
minimumValue: '0.001',
decimalPlaces: 2
Часть значений не сможет корректно отображаться.
<input id="payment">
new AutoNumeric('#payment', {
currencySymbol: '$',
digitGroupSeparator: ',',
decimalCharacter: '.',
decimalPlaces: 2,
minimumValue: '10',
maximumValue: '10000'
});
Поле поддерживает:
$10.00 — $10,000.00
и автоматически запрещает выход за пределы диапазона.
new AutoNumeric('#usd', AutoNumeric.getPredefinedOptions().NorthAmerican, {
minimumValue: '0'
});
Переопределение пользовательских ограничений работает поверх готовых пресетов.
minimumValue активно применяется в:
Особенно важен параметр в приложениях, где цена или количество не могут быть отрицательными.
Проверка минимального значения выполняется мгновенно и практически не влияет на производительность даже при большом количестве полей.
AutoNumeric выполняет:
Все операции оптимизированы для работы в реальном времени во время ввода.