В AutoNumeric управление отрицательными числами реализуется через комбинацию правил валидации ввода и постобработки значения. Основная идея заключается в том, что любое значение, вводимое пользователем или устанавливаемое программно, проходит нормализацию и проверку на соответствие допустимому диапазону.
Отрицательные значения регулируются на нескольких уровнях:
Каждый из этих уровней может работать независимо или совместно, формируя строгую систему контроля ввода.
Ключевым механизмом является настройка, отвечающая за разрешение отрицательных значений. В конфигурации AutoNumeric это поведение обычно задаётся через логическую опцию, определяющую возможность использования знака минус.
AutoNumeric.multiple('.amount', {
allowDecimalPadding: true,
decimalPlaces: 2,
minimumValue: '0',
maximumValue: '999999'
});
В приведённой конфигурации отрицательные значения фактически
исключены за счёт установки нижней границы диапазона в
0.
Если требуется полный запрет отрицательных чисел, применяется именно ограничение через минимальное значение, а не только блокировка символа минус. Это связано с тем, что программная установка значения может обойти ограничения интерфейса ввода.
minimumValue является центральным инструментом
ограничения отрицательных чисел. Он определяет нижнюю границу
допустимого диапазона и влияет на все сценарии ввода:
AutoNumeric.multiple('.price', {
minimumValue: '0.00',
maximumValue: '1000000.00',
decimalPlaces: 2
});
Любая попытка ввести отрицательное значение будет приводить к его коррекции до минимального допустимого уровня.
AutoNumeric.multiple('.balance', {
minimumValue: '-5000',
maximumValue: '5000',
decimalPlaces: 2
});
В этом случае допускается уход баланса в отрицательную область, но строго до заданного порога.
При выходе за пределы допустимого диапазона AutoNumeric применяет стратегию нормализации:
minimumValue заменяются на
minimumValue;maximumValue заменяются на
maximumValue;Пример поведения:
| Ввод | minimumValue = 0 | minimumValue = -100 |
|---|---|---|
| -50 | 0 | -50 |
| -999 | 0 | -100 |
Такое поведение обеспечивает стабильность данных и предотвращает неконсистентные состояния формы.
Хотя основная логика отрицательных значений строится вокруг диапазонов, визуальное и синтаксическое управление знаком минус также играет важную роль.
AutoNumeric обрабатывает:
-;В некоторых конфигурациях знак минус может быть скрыт или заменён альтернативным представлением.
AutoNumeric.multiple('.field', {
minimumValue: '-9999',
maximumValue: '9999',
negativeSignCharacter: '-'
});
В результате отрицательные числа сохраняют корректную математическую форму, но могут отображаться в стандартизированном виде.
Отображение отрицательных чисел может быть адаптировано под различные финансовые стандарты. AutoNumeric поддерживает разные подходы к визуализации:
Пример бухгалтерского представления:
AutoNumeric.multiple('.accounting', {
minimumValue: '-9999999',
maximumValue: '9999999',
negativeBracketsTypeOnBlur: 1
});
При таком формате значение -1200.50 может отображаться
как (1,200.50) в режиме blur, сохраняя внутреннее
отрицательное представление.
Ограничения отрицательных чисел распространяются не только на пользовательский ввод, но и на программные методы управления значениями.
const anElement = AutoNumeric.getAutoNumericElement('.input');
anElement.set(-250);
console.log(anElement.getNumber()); // может быть скорректировано при ограничениях
Если задан minimumValue равный 0, результат
будет автоматически приведён к нулю.
Это поведение критично при интеграции с внешними источниками данных:
При вставке отрицательных чисел из буфера обмена применяется тот же механизм нормализации:
Особенность заключается в том, что даже некорректно отформатированные отрицательные значения приводятся к валидному виду.
Пример:
| Вставка | результат при minimumValue = 0 |
|---|---|
| -12,5 | 0 |
| -00100 | 0 |
| 50- | 50 |
Сложные ситуации возникают при сочетании нескольких ограничений:
minimumValue и формат
скобок;При изменении настроек на лету возможны пересчёты текущего значения:
anElement.update({
minimumValue: '-1000'
});
Если текущее значение не соответствует новому диапазону, оно автоматически пересчитывается.
AutoNumeric не является вычислительным движком, но его ограничения влияют на результаты внешних расчётов при связке с бизнес-логикой:
При использовании в формах бухгалтерского учёта это предотвращает накопление некорректных данных на уровне интерфейса.
Ограничения отрицательных чисел часто используются вместе с другими параметрами:
Пример комплексной конфигурации:
AutoNumeric.multiple('.currency', {
minimumValue: '-10000.00',
maximumValue: '10000.00',
decimalPlaces: 2,
digitGroupSeparator: ' ',
decimalCharacter: '.'
});
Такая комбинация обеспечивает строгий контроль диапазона и единообразное отображение.
Ноль является пограничным значением между положительной и
отрицательной областью. При установке minimumValue: '0'
система фактически отключает отрицательную числовую ось для конкретного
поля.
При этом ноль сохраняет полную допустимость и может:
Если же минимальное значение отрицательное, ноль становится промежуточной точкой диапазона без особых правил обработки.