Режим только положительных чисел

Режим только положительных чисел в AutoNumeric предназначен для ввода и отображения исключительно положительных значений, включая ноль при необходимости. Этот режим особенно полезен для финансовых приложений, калькуляторов, систем учета и любых интерфейсов, где отрицательные значения недопустимы.

Настройка параметров

Для активации режима только положительных чисел используется параметр minimumValue. Его значение следует установить равным 0 или любому другому положительному числу, если требуется ограничить ввод снизу. Пример инициализации:

new AutoNumeric('#positiveInput', {
    minimumValue: '0',
    maximumValue: '9999999', // опциональное верхнее ограничение
    decimalPlaces: 2,
    digitGroupSeparator: ',',
    decimalCharacter: '.',
    modifyValueOnWheel: false
});

Ключевые моменты:

  • minimumValue: '0' гарантирует, что пользователь не сможет ввести отрицательное число.
  • maximumValue ограничивает максимально допустимое значение. Если параметр не задан, верхняя граница отсутствует.
  • decimalPlaces определяет точность дробной части.
  • digitGroupSeparator улучшает читаемость больших чисел.

Обработка ввода отрицательных значений

Если пользователь попытается ввести знак минус или отрицательное число, AutoNumeric автоматически:

  1. Игнорирует знак минус при вводе.
  2. При вставке текста с отрицательным числом преобразует его к ближайшему допустимому значению (minimumValue).

Пример поведения:

const an = new AutoNumeric('#positiveInput', { minimumValue: '0' });
an.set('-123'); // результат: 0
an.set('-0.5'); // результат: 0

Автоматическое исправление при потере фокуса

AutoNumeric поддерживает автоматическое исправление недопустимых значений при blur (потере фокуса). Если поле пустое или содержит недопустимое отрицательное число, оно заменяется на минимальное значение:

const an = new AutoNumeric('#positiveInput', {
    minimumValue: '0',
    emptyInputBehavior: 'zero'
});
  • emptyInputBehavior: 'zero' – при пустом поле вставляется значение 0.
  • Этот параметр особенно важен для форм, где обязательны числовые значения.

Валидация и пользовательский опыт

Режим только положительных чисел интегрируется с системами валидации:

  • Клавиатурный ввод: отрицательные символы блокируются.
  • Вставка текста: если вставленный текст содержит отрицательное число, оно заменяется на minimumValue.
  • Копирование и вставка с форматированием: AutoNumeric корректно распознаёт разделители тысяч и десятичные символы.

Пример настройки для улучшенной UX:

new AutoNumeric('#positiveInput', {
    minimumValue: '0',
    maximumValue: '100000',
    decimalPlaces: 2,
    digitGroupSeparator: ' ',
    decimalCharacter: ',',
    modifyValueOnWheel: true,
    selectOnFocus: true
});
  • modifyValueOnWheel: true позволяет увеличивать/уменьшать значение с помощью колесика мыши.
  • selectOnFocus: true выделяет содержимое при фокусе, ускоряя редактирование.

Взаимодействие с другими режимами AutoNumeric

Режим только положительных чисел совместим с:

  • Валютными режимами: можно одновременно форматировать валюту и запрещать отрицательные числа.
  • Процентными режимами: минимальное значение 0 предотвращает отрицательные проценты.
  • Научной нотацией: ограничение minimumValue сохраняется при экспоненциальном вводе.

Пример:

new AutoNumeric('#currencyInput', {
    currencySymbol: '$',
    minimumValue: '0',
    maximumValue: '1000000',
    decimalPlaces: 2
});

Динамическая смена ограничений

Параметры minimumValue и maximumValue можно менять в процессе работы приложения:

const an = new AutoNumeric('#positiveInput', { minimumValue: '0', maximumValue: '1000' });
an.update({ maximumValue: '5000' });
  • Позволяет адаптировать диапазон допустимых значений под текущие условия интерфейса.
  • Обновление параметров автоматически корректирует текущее значение, если оно выходит за новые границы.

Итоговое поведение

  • Любое отрицательное значение блокируется или корректируется.
  • Пустые поля можно настроить на автоматическую замену нулем.
  • Форматирование чисел сохраняется независимо от пользовательских действий.
  • Поддерживается динамическое изменение параметров ограничения и интеграция с другими режимами AutoNumeric.

Режим только положительных чисел обеспечивает строгую защиту от некорректного ввода, сохраняя при этом гибкость форматирования и удобство пользовательского интерфейса.