Уничтожение экземпляра AutoNumeric представляет собой процесс полного
удаления функционала библиотеки с конкретного HTML-элемента
<input>, к которому ранее была привязана маска
форматирования чисел. Этот процесс необходим для освобождения ресурсов,
предотвращения конфликтов при повторной инициализации, а также для
корректного удаления всех обработчиков событий и внутренних данных,
связанных с экземпляром.
AutoNumeric предоставляет метод remove(), который
выполняет полное разрушение экземпляра. Метод вызывается на объекте
AutoNumeric, созданном для конкретного поля ввода:
const anElement = new AutoNumeric('#myInput', 1234.56, { digitGroupSeparator: ',' });
// Уничтожение экземпляра
anElement.remove();
После вызова remove():
Если экземпляр AutoNumeric был привязан к элементу через селектор или
при массовой инициализации, можно использовать статический метод
AutoNumeric.getAutoNumericElement для получения экземпляра
и последующего его удаления:
const anInstance = AutoNumeric.getAutoNumericElement('#myInput');
if (anInstance) {
anInstance.remove();
}
Это особенно важно при динамическом создании элементов формы, когда
объекты <input> могут появляться и исчезать в
DOM.
AutoNumeric сохраняет в поле форматированное значение. Перед
уничтожением экземпляра можно получить чистое числовое значение через
методы getNumber() или getNumericString(),
чтобы сохранить данные для дальнейшей обработки:
const anInstance = AutoNumeric.getAutoNumericElement('#myInput');
if (anInstance) {
const rawValue = anInstance.getNumber(); // Получение числа
anInstance.remove();
}
Использование этих методов гарантирует, что данные не будут потеряны при удалении экземпляра.
Если библиотека была применена к группе элементов через селектор
класса, можно выполнить массовое удаление всех экземпляров, используя
метод AutoNumeric.getAutoNumericElementList:
const allInstances = AutoNumeric.getAutoNumericElementList('.numeric-input');
allInstances.forEach(instance => instance.remove());
Это предотвращает утечки памяти и обеспечивает корректное управление динамическими формами.
При удалении элементов из DOM, к которым привязан AutoNumeric,
рекомендуется сначала вызвать remove(), а затем удалить
элемент из документа. Это предотвращает сохранение обработчиков событий
в памяти и возможные ошибки при повторной инициализации:
const input = document.querySelector('#dynamicInput');
const anInstance = AutoNumeric.getAutoNumericElement(input);
if (anInstance) {
anInstance.remove();
}
input.remove();
После уничтожения экземпляра AutoNumeric значение в
<input> возвращается в обычный текстовый формат. При
необходимости можно сразу присвоить новое значение или применить другой
экземпляр AutoNumeric для форматирования:
anInstance.remove();
input.value = "0"; // Новый стандартный ввод
remove() перед удалением элемента из
DOM.getNumber() или
getNumericString() перед уничтожением.getAutoNumericElementList.Уничтожение экземпляра AutoNumeric — ключевой элемент управления жизненным циклом числовых полей, обеспечивающий чистоту DOM и корректную работу динамических интерфейсов.