Метод update в библиотеке AutoNumeric предназначен для
динамического изменения конфигурации уже инициализированного экземпляра
без его пересоздания. Это один из ключевых механизмов адаптации
поведения числового поля «на лету», когда требования к форматированию
меняются в зависимости от состояния интерфейса, пользовательских
действий или бизнес-логики приложения.
Поддержка обновления параметров без разрушения инстанса позволяет сохранять текущее значение, привязки событий и состояние DOM-элемента, одновременно применяя новые правила форматирования: разделители тысяч, символ валюты, точность, ограничения ввода и прочие параметры.
Метод update используется для:
Ключевая особенность заключается в том, что обновление происходит без повторной инициализации AutoNumeric и без замены DOM-элемента.
Базовая форма вызова метода выглядит следующим образом:
anElement.update(newOptions);
Где:
anElement — экземпляр AutoNumeric, полученный при
инициализации;newOptions — объект конфигурации с параметрами, которые
необходимо изменить.Метод не требует обязательного полного набора настроек. Передаются только те параметры, которые должны быть обновлены.
При вызове update происходит последовательная внутренняя
обработка:
Важно, что AutoNumeric старается сохранить исходное числовое значение, а не строковое представление.
Объект newOptions может включать любые поддерживаемые
параметры AutoNumeric. Наиболее часто изменяются следующие группы
настроек:
digitGroupSeparator — символ разделения групп
разрядов;decimalCharacter — символ десятичного разделителя;currencySymbol — символ валюты;currencySymbolPlacement — позиция символа валюты;suffixText, prefixText — текстовые
дополнения.Изменение этих параметров мгновенно перестраивает отображение значения.
minimumValue — минимально допустимое значение;maximumValue — максимально допустимое значение;allowDecimalPadding — выравнивание десятичных
знаков;decimalPlaces — количество знаков после запятой.После обновления этих параметров ввод пользователя начинает валидироваться по новым правилам.
leadingZero — поведение ведущих нулей;modifyValueOnWheel — изменение значения колесом
мыши;unformatOnSubmit — снятие форматирования при отправке
формы;emptyInputBehavior — поведение при пустом
значении.Эти параметры влияют на взаимодействие пользователя с полем, а не только на отображение.
const anElement = new AutoNumeric('#price', {
currencySymbol: '$',
decimalPlaces: 2,
digitGroupSeparator: ','
});
// Позднее обновление конфигурации
anElement.update({
currencySymbol: '€',
digitGroupSeparator: ' ',
decimalPlaces: 0
});
В результате поле мгновенно изменит формат отображения без потери введённого значения.
anElement.update({
minimumValue: "0",
maximumValue: "10000"
});
После выполнения этого кода:
Метод допускает частичное обновление, что позволяет изменять только один аспект поведения:
anElement.update({
decimalPlaces: 4
});
В этом случае остальные настройки остаются без изменений. Это особенно важно для динамических интерфейсов, где требуется корректировка только точности без вмешательства в форматирование.
При изменении форматирующих параметров AutoNumeric выполняет перерасчёт отображаемого значения:
Например, при смене разделителя с , на пробел:
1,234.56 → 1 234.56
anElement.update({
currencySymbol: '₽',
currencySymbolPlacement: 's'
});
Здесь:
Результат:
1234.56 → 1234.56 ₽
Одной из ключевых особенностей update является
сохранение состояния:
input и change не
сбрасываются;Это делает метод предпочтительным по сравнению с повторной инициализацией.
Несмотря на гибкость, метод имеет ряд особенностей:
function toggleCurrency(isEuro) {
anElement.update({
currencySymbol: isEuro ? '€' : '$',
currencySymbolPlacement: 'p'
});
}
Такой подход часто используется в интерфейсах интернет-магазинов и финансовых панелях.
function setPrecision(mode) {
anElement.update({
decimalPlaces: mode === 'high' ? 6 : 2
});
}
После вызова метод автоматически пересчитает текущее значение под новую точность.
При обновлении конфигурации во время активного ввода:
Это важно учитывать в формах с высокой интерактивностью.
Метод можно вызывать многократно. Каждое новое обновление:
anElement.update({ decimalPlaces: 2 });
anElement.update({ currencySymbol: '€' });
anElement.update({ maximumValue: "5000" });
В результате итоговая конфигурация будет объединением всех изменений.
Метод часто применяется в следующих ситуациях:
update оптимизирован для частого использования:
Однако при массовых обновлениях большого количества полей возможны задержки из-за перерасчёта форматирования.
На практике встречаются следующие проблемы:
update внутри событий ввода без
оптимизации.Корректная стратегия — группировать изменения в один вызов.
Метод update можно рассматривать как механизм «горячей
замены конфигурации», при котором:
Это делает его основным инструментом динамического управления форматированием чисел в AutoNumeric.