Очистка значения в AutoNumeric относится к группе операций, связанных с приведением поля ввода к состоянию отсутствия числового значения, удалением пользовательского ввода, сбросом форматирования и управлением внутренним представлением данных. Поведение очистки определяется сочетанием методов API, конфигурационных параметров и реакций на пользовательские события ввода.
При работе библиотеки одновременно существуют несколько уровней представления данных:
Очистка затрагивает один или несколько из этих уровней в зависимости от используемого метода.
Ключевая особенность AutoNumeric заключается в строгом разделении отображения и хранения данных, поэтому «очистка» не всегда означает удаление значения как такового.
Основной механизм сброса состояния — метод clear().
Поведение метода:
emptyInputBehavior;Типичный вызов:
anElement.clear();
После выполнения метода визуальное содержимое input становится пустым либо заменяется на значение, заданное политикой пустого ввода.
Ключевая настройка, определяющая результат очистки:
null — внутреннее значение становится
null;zero — подставляется 0;min — используется минимально допустимое значение;focus — поведение зависит от состояния фокуса;always — принудительное отображение значения даже при
пустом вводе.При очистке через clear() именно этот параметр
определяет итоговое состояние модели данных.
Очистка может быть реализована через метод set():
anElement.set(null);
В этом случае:
null при
соответствующей конфигурации;Поведение отличается от установки пустой строки, поскольку пустая строка трактуется как ввод пользователя, а не как отсутствие значения.
Операции имеют различную семантику:
clear() — специализированный сброс состояния;set(value) — универсальное присвоение значения.При очистке через set('') возможна интерпретация как
строкового ввода, тогда как clear() работает через
внутренний механизм сброса модели.
Полное удаление состояния экземпляра возможно через
destroy():
anElement.destroy();
После этого:
Такой подход не является очисткой значения в узком смысле, но используется при полной переработке состояния формы.
При вводе символов пользователем библиотека непрерывно нормализует данные. Очистка может происходить и на уровне событий:
При достижении пустого состояния включается логика
emptyInputBehavior.
Для проверки результата очистки используются методы:
anElement.getNumber();
anElement.getNumericString();
anElement.get();
Поведение при пустом значении:
getNumber() может возвращать null или
0 в зависимости от конфигурации;getNumericString() возвращает пустую строку;get() возвращает форматированное значение или пустую
строку.Таким образом, очистка не имеет единственного универсального результата на уровне API.
Перед вызовом очистки часто происходит приведение состояния:
Внутренний механизм AutoNumeric автоматически пересчитывает значение перед финальным применением очистки.
Некоторые сценарии используют переход в неформатированное состояние:
anElement.unformat();
Данный процесс:
В связке с последующим set(null) формируется полный цикл
очистки.
При изменении значения с переходом в пустое состояние активируются события:
onChangeonInputonFocusOutОчистка может инициировать пересчёт только при изменении внутреннего
состояния, поэтому повторный вызов clear() при уже пустом
поле может не генерировать событий.
Очистка значения также зависит от настроек локали:
При сбросе форматирования эти элементы удаляются, но могут быть восстановлены при повторном вводе или фокусе.
Сценарии жесткой очистки используют комбинации методов:
anElement.set(null);
anElement.clear();
или
anElement.set('');
Поведение зависит от приоритета внутренних правил библиотеки и конфигурации.
После выполнения очистки экземпляр сохраняет:
Удаляется только значение, но не конфигурация.
В рамках AutoNumeric это обеспечивает возможность многократного переиспользования одного инстанса без повторной инициализации.
После перехода в пустое состояние:
Очистка не влияет на механизм валидации, поэтому ограничения продолжают действовать сразу после сброса.