fix(concept): step="any" — stepMismatch блокировал submit «Рассчитать концепцию» (#1953) #2103

Merged
bot-backend merged 1 commit from fix/concept-land-cost-step-mismatch into main 2026-06-30 10:09:56 +00:00

1 commit

Author SHA1 Message Date
68f225f794 fix(concept): step="any" on number inputs — stepMismatch блокировал submit (#1953)
All checks were successful
CI / changes (pull_request) Successful in 7s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 58s
CI / openapi-codegen-check (pull_request) Successful in 1m51s
Поле «Стоимость участка» (ConceptProgramForm §7 + ConceptParamsForm /concept)
имело step={1_000_000}. Сид из кадастровой стоимости (напр. 74 766.08 ₽, не
кратно шагу) → HTML5 stepMismatch → форма :invalid → браузер МОЛЧА блокирует
submit (submit-событие не выстреливает) → кнопка «Рассчитать концепцию» не
работает на ЛЮБОМ участке с кадастровой стоимостью. Авто-расчёт §7 маскировал
баг — он зовёт движок напрямую, минуя валидацию формы.

Тот же латентный stepMismatch на floor_height (step 0.1) и пятне (step 1) —
clampFloat допускает дробные → step="any" и там.

Подтверждено на проде (DOM-патч step="any" → checkValidity()=true → submit
проходит → GFA 15 876→30 240, FAR 0.24→0.45 под изменённое пятно).
2026-06-30 15:06:57 +05:00