diff --git a/frontend/src/components/concept/ConceptParamsForm.tsx b/frontend/src/components/concept/ConceptParamsForm.tsx index 95117f61..cac862bb 100644 --- a/frontend/src/components/concept/ConceptParamsForm.tsx +++ b/frontend/src/components/concept/ConceptParamsForm.tsx @@ -163,7 +163,10 @@ export function ConceptParamsForm({ id="land-cost" type="number" min={0} - step={1_000_000} + // step="any" — произвольная сумма ₽; step={1_000_000} давал HTML5 + // stepMismatch на не-кратных значениях → форма :invalid → submit молча + // блокировался (см. ConceptProgramForm fix). + step="any" value={params.land_cost_rub ?? ""} placeholder="Необязательно" onChange={(e) => { diff --git a/frontend/src/components/concept/ConceptProgramForm.tsx b/frontend/src/components/concept/ConceptProgramForm.tsx index 7c8f32f7..a7ab4ed7 100644 --- a/frontend/src/components/concept/ConceptProgramForm.tsx +++ b/frontend/src/components/concept/ConceptProgramForm.tsx @@ -383,7 +383,7 @@ export function ConceptProgramForm({ @@ -461,7 +461,7 @@ export function ConceptProgramForm({ aria-label="Глубина пятна секции, м" min={FOOTPRINT_MIN} max={FOOTPRINT_MAX} - step={1} + step="any" value={effFootprintD ?? ""} disabled={!catalogReady} onChange={(e) => @@ -542,7 +542,10 @@ export function ConceptProgramForm({ id="cpf-land-cost" type="number" min={0} - step={1_000_000} + // step="any" — иначе сид из кадастровой стоимости (не кратной шагу, + // напр. 74 766.08 ₽) даёт HTML5 stepMismatch → форма :invalid → + // браузер молча блокирует submit и кнопка «Рассчитать» не работает. + step="any" value={landCostRub ?? ""} placeholder="Необязательно" onChange={(e) => {