Инициализация элементов с использованием AutoNumeric требует внимательного контроля состояния каждого поля ввода, поскольку некорректная или неполная инициализация может привести к ошибкам форматирования и неконсистентным данным. AutoNumeric предоставляет набор встроенных методов и свойств, позволяющих проверить, был ли элемент успешно инициализирован, а также получить доступ к текущей конфигурации.
Основным методом проверки является статический метод
AutoNumeric.isManaged(element). Он возвращает логическое
значение:
const input = document.querySelector('#price');
const isInitialized = AutoNumeric.isManaged(input); // true или false
element – HTMLInputElement
или его идентификатор.true, если
элемент управляется AutoNumeric, и false, если нет.Этот метод полезен при динамическом создании элементов на странице или при повторной инициализации, чтобы избежать ошибок повторного присвоения экземпляра.
После инициализации экземпляра можно использовать метод
AutoNumeric.getAutoNumericElement(element) для получения
ссылки на объект AutoNumeric, связанный с конкретным элементом:
const anElement = AutoNumeric.getAutoNumericElement(input);
if (anElement) {
console.log('Элемент инициализирован', anElement);
} else {
console.log('Элемент не инициализирован');
}
null.getNumber(), set(),
update() и другие.Каждый экземпляр AutoNumeric хранит внутреннее состояние, которое можно использовать для проверки корректности инициализации:
if (anElement && anElement.domElement === input) {
console.log('Экземпляр корректно привязан к элементу');
}
Свойство domElement позволяет убедиться, что объект
действительно связан с конкретным HTMLInputElement, исключая случаи
случайного обращения к другому элементу.
Метод getSettings() возвращает объект текущей
конфигурации AutoNumeric для данного элемента:
const settings = anElement.getSettings();
console.log(settings.decimalPlaces); // количество знаков после запятой
console.log(settings.digitGroupSeparator); // разделитель тысяч
Это особенно важно при работе с динамическими параметрами, когда настройки могут изменяться после инициализации.
const input = document.querySelector('#amount');
if (!AutoNumeric.isManaged(input)) {
new AutoNumeric(input, { currencySymbol: '$', decimalPlaces: 2 });
} else {
console.log('Элемент уже инициализирован');
}
const inputs = document.querySelectorAll('.numeric');
inputs.forEach(input => {
if (AutoNumeric.isManaged(input)) {
const an = AutoNumeric.getAutoNumericElement(input);
console.log('Текущие настройки:', an.getSettings());
} else {
console.log('Элемент не инициализирован:', input.id);
}
});
При динамическом создании элементов на странице проверка инициализации становится критически важной. Если элемент добавлен в DOM после загрузки страницы, стандартные методы AutoNumeric позволяют:
update().const newInput = document.createElement('input');
newInput.type = 'text';
document.body.appendChild(newInput);
if (!AutoNumeric.isManaged(newInput)) {
const an = new AutoNumeric(newInput, { decimalPlaces: 3 });
console.log('Элемент инициализирован с настройками:', an.getSettings());
}
AutoNumeric.isManaged() позволяет
безопасно проверять состояние элементов перед инициализацией.getAutoNumericElement() обеспечивает доступ к
экземпляру и его методам.