AutoNumeric предоставляет гибкий и мощный инструмент для форматирования числовых данных в HTML-формах, при этом поддерживая режим только для чтения, который позволяет отображать отформатированные значения без возможности их изменения пользователем. Этот режим полезен в ситуациях, когда требуется показать числовую информацию с заданным форматированием, сохранив при этом консистентность отображения и предотвращая случайные изменения.
Для перевода поля в режим только для чтения используется опция
readOnly. Она может быть задана как при инициализации, так
и динамически после создания объекта AutoNumeric.
Пример инициализации:
new AutoNumeric('#readonlyInput', 12345.67, {
readOnly: true,
currencySymbol: '$',
digitGroupSeparator: ',',
decimalCharacter: '.',
decimalPlaces: 2
});
В этом примере:
readOnly: true делает поле недоступным для
редактирования.AutoNumeric позволяет переключать режим только для чтения в уже существующем объекте с помощью методов:
const anElement = new AutoNumeric('#dynamicInput', 1000.5);
// Включение режима только для чтения
anElement.update({ readOnly: true });
// Отключение режима только для чтения
anElement.update({ readOnly: false });
Ключевые моменты:
update позволяет менять параметры
без пересоздания объекта.readOnly можно безопасно форматировать число
без риска, что пользователь случайно его изменит.В режиме только для чтения AutoNumeric изменяет следующие аспекты поведения поля:
onChange, не будут вызываться при попытке редактирования,
так как изменения невозможны.Режим только для чтения часто комбинируют с другими параметрами AutoNumeric для обеспечения точного визуального представления чисел.
Форматирование валюты с отрицательными значениями:
new AutoNumeric('#readonlyCurrency', -2543.89, {
readOnly: true,
currencySymbol: '€',
decimalPlaces: 2,
negativePositiveSignPlacement: 'p',
digitGroupSeparator: ' '
});
p – перед числом).Процентные значения в режиме только для чтения:
new AutoNumeric('#readonlyPercent', 0.1534, {
readOnly: true,
suffixText: ' %',
decimalPlaces: 2,
minimumValue: '0',
maximumValue: '100'
});
%.Режим только для чтения особенно удобен при отображении числовых данных в таблицах и списках, где требуется единообразное форматирование:
getNumericString можно получить чистое
числовое значение для дальнейшей обработки на стороне JavaScript.Пример применения в таблице:
document.querySelectorAll('.readonly-cell').forEach(cell => {
new AutoNumeric(cell, cell.textContent, { readOnly: true, decimalPlaces: 2 });
});
.readonly-cell.Даже в режиме только для чтения доступны методы API AutoNumeric:
getNumericString() – возвращает строку с числом без
форматирования.getNumber() – возвращает числовое значение.set() – позволяет программно изменять значение без
нарушения режима только для чтения, если параметр readOnly
остаётся true.Пример:
const anReadonly = new AutoNumeric('#readonlyValue', 5000, { readOnly: true });
console.log(anReadonly.getNumber()); // 5000
anReadonly.set(7500);
console.log(anReadonly.getNumber()); // 7500
readOnly: true блокирует пользовательский ввод, но
сохраняет форматирование.update
обеспечивает гибкость.