Минимальное значение

Параметр minimumValue в библиотеке AutoNumeric определяет минимально допустимое значение, которое может быть введено в поле. Ограничение применяется как при ручном вводе, так и при программной установке значения через API библиотеки.

Параметр используется для:

  • запрета отрицательных чисел;
  • ограничения финансовых диапазонов;
  • контроля минимальных ставок, цен и процентов;
  • предотвращения ввода ошибочных данных;
  • ограничения диапазонов в формах расчётов.

Без указания minimumValue библиотека использует стандартное значение:

minimumValue: '-10000000000000'

Это означает, что поле по умолчанию поддерживает большие отрицательные значения.


Базовый синтаксис

new AutoNumeric('#price', {
    minimumValue: '0'
});

В этом примере поле не позволит вводить значения меньше нуля.


Тип данных параметра

Несмотря на то что значение представляет число, minimumValue задаётся строкой.

Правильный вариант:

minimumValue: '10'

Неправильный вариант:

minimumValue: 10

Строковый формат используется для:

  • точной обработки больших чисел;
  • корректной работы десятичных значений;
  • предотвращения ошибок округления Javascript;
  • унификации внутренних алгоритмов библиотеки.

Ограничение только положительных чисел

Один из наиболее распространённых сценариев — запрет отрицательных значений.

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

Проверка значения через API

Метод 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 жёстко ограничивать максимум

Использование с HTML-формами

<input id="price">
new AutoNumeric('#price', {
    minimumValue: '0'
});

При отправке формы значение уже гарантированно находится в допустимом диапазоне.


Влияние на UX

Ограничение минимального значения:

  • снижает количество ошибок;
  • уменьшает необходимость серверной валидации;
  • предотвращает случайный ввод;
  • улучшает контроль финансовых данных;
  • делает формы более предсказуемыми.

Типичные ошибки

Использование чисел вместо строк

Неправильно:

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 активно применяется в:

  • React;
  • Vue;
  • Angular;
  • административных панелях;
  • CRM-системах;
  • ERP-интерфейсах;
  • POS-терминалах;
  • финансовых dashboards.

Особенно важен параметр в приложениях, где цена или количество не могут быть отрицательными.


Производительность

Проверка минимального значения выполняется мгновенно и практически не влияет на производительность даже при большом количестве полей.

AutoNumeric выполняет:

  1. парсинг значения;
  2. нормализацию;
  3. сравнение с минимумом;
  4. форматирование результата;
  5. обновление DOM.

Все операции оптимизированы для работы в реальном времени во время ввода.