Заметки по ипотечному калькулятору
Документ фиксирует текущую логику калькулятора и проверки после правок.
Где находится логика
Основная логика калькулятора находится в файле:
assets/js/main.js
Форма определяется по атрибуту:
data-mortgage-calc
Результат выводится в блок:
data-calc-result
Что рассчитывается
Калькулятор считает примерный аннуитетный платеж по данным:
- стоимость жилья;
- первоначальный взнос;
- ставка;
- срок кредита.
Расчет предварительный. Финальные условия определяет банк.
Поля ввода
Поля калькулятора сделаны как type="text" с inputmode, pattern, autocomplete="off" и подсказками placeholder.
Это нужно, чтобы пользователь мог вводить:
- суммы с пробелами;
- дробную ставку через точку;
- дробную ставку через запятую.
Подсказки placeholder задаются в разметке страницы калькулятора. JavaScript не должен их перезаписывать, чтобы текстовые подсказки можно было править прямо в HTML/Markdown страницы.
Нормализация значений выполняется в assets/js/main.js.
Валидация
Калькулятор проверяет:
- стоимость жилья больше 0;
- первоначальный взнос не отрицательный;
- первоначальный взнос меньше стоимости жилья;
- ставка от 0 до 100%;
- срок от 1 до 30 лет.
Что поддерживается
- Дробные ставки через точку или запятую.
- Пробелы в числах.
- Пустые и некорректные значения показывают понятное сообщение.
- Ошибка подсвечивает конкретное поле через
aria-invalid. - Результат озвучивается через
aria-live. - Первое изменение калькулятора отправляет цель
calculator_input.
Что проверять после правок
- Ввод обычных чисел.
- Ввод ставки с запятой.
- Ввод ставки с точкой.
- Ввод суммы с пробелами.
- Пустую стоимость жилья.
- Взнос больше стоимости.
- Ставку больше 100%.
- Срок меньше 1 и больше 30 лет.
- Отображение результата на мобильном экране.