Инициализация AutoNumeric на HTML-элементе input
позволяет автоматически форматировать вводимые пользователем числовые
значения, учитывая локаль, разделители тысяч, десятичные знаки, валютные
символы и дополнительные ограничения. Этот процесс является
фундаментальным для использования библиотеки, так как без него функции
автоподстановки и форматирования не будут работать.
inputДля начала необходимо выбрать элемент input с помощью
стандартных методов DOM, таких как document.querySelector
или document.getElementById. AutoNumeric работает как с
одиночными элементами, так и с коллекциями элементов.
Пример инициализации на одном элементе:
const inputElement = document.querySelector('#price');
new AutoNumeric(inputElement, {
digitGroupSeparator: ',',
decimalCharacter: '.',
decimalPlaces: 2,
currencySymbol: '$',
currencySymbolPlacement: 'p' // 'p' – перед числом, 's' – после
});
Здесь:
digitGroupSeparator — символ, используемый для
разделения тысяч;decimalCharacter — символ десятичного разделителя;decimalPlaces — количество знаков после запятой;currencySymbol — символ валюты;currencySymbolPlacement — положение валютного символа
относительно числа.AutoNumeric позволяет инициализировать несколько
input-элементов одновременно, используя селекторы CSS и
метод forEach. Это упрощает работу с формами, где
необходимо единообразное форматирование чисел.
const inputs = document.querySelectorAll('.currency-input');
inputs.forEach(input => {
new AutoNumeric(input, {
digitGroupSeparator: ' ',
decimalCharacter: ',',
decimalPlaces: 0,
currencySymbol: '€',
currencySymbolPlacement: 's'
});
});
Важно отметить, что каждый экземпляр AutoNumeric независим и управляет только своим элементом.
Библиотека предоставляет возможность использовать предустановленные настройки для различных сценариев: финансовых, процентных, счетов и т.д. Предустановка значительно упрощает инициализацию и снижает вероятность ошибок конфигурации.
Пример с предустановкой currency:
new AutoNumeric('#amount', AutoNumeric.getPredefinedOptions().currency);
Предустановка currency автоматически задаёт:
При инициализации можно задать ограничения на вводимые значения:
new AutoNumeric('#quantity', {
minimumValue: '0',
maximumValue: '1000',
decimalPlaces: 0,
digitGroupSeparator: ''
});
Это предотвращает ввод некорректных чисел, таких как отрицательные значения или превышающие заданный максимум.
AutoNumeric предоставляет удобные методы для подписки на события и реакции на изменения значения:
const numericInput = new AutoNumeric('#tax', { decimalPlaces: 2 });
numericInput.node().addEventListener('focus', () => {
console.log('Элемент получил фокус');
});
numericInput.node().addEventListener('blur', () => {
console.log('Текущее значение:', numericInput.getNumber());
});
Метод getNumber() возвращает числовое значение без
форматирования, что полезно для отправки данных на сервер.
Если элементы input добавляются в DOM динамически,
необходимо инициализировать AutoNumeric после добавления элемента:
const newInput = document.createElement('input');
document.body.appendChild(newInput);
new AutoNumeric(newInput, {
decimalPlaces: 2,
digitGroupSeparator: ','
});
Для динамических форм удобно хранить все экземпляры в массиве для последующего управления.
После инициализации каждый элемент управляется своим экземпляром AutoNumeric. Основные методы:
getNumber() — возвращает числовое значение;set(number) — задаёт значение программно;update(settings) — обновляет параметры форматирования
на лету;remove() — удаляет AutoNumeric с элемента, возвращая
обычное поведение input.Пример обновления параметров:
const priceInput = new AutoNumeric('#price', { decimalPlaces: 2 });
priceInput.update({ decimalPlaces: 4 });
decimalCharacter и digitGroupSeparator должны
соответствовать региональным стандартам.Инициализация на элементе input является основой работы
AutoNumeric, обеспечивая корректное форматирование, контроль значений и
удобное взаимодействие с пользователем и серверной частью
приложения.