Как показать поля формы по ответу и не потерять заявку
Для сценария «выбрали доставку — показать адрес» отдельная модификация обычно не нужна: Тильда умеет условно показывать группы полей и не отправляет те, которые скрыты её механизмом. Свой код появляется только там, где ветка должна менять не видимость, а получателя, цену или внешний процесс. Спрятать поле одним CSS недостаточно — оно может остаться обязательным и продолжить попадать в данные.
Короткий ответ
Используйте родные условия формы для видимости и обязательности. Свой код нужен для бизнес-логики за пределами формы, а не для каждого раскрывающегося поля.
Почему display: none — не условие
CSS отвечает только за картинку. Он не сообщает форме, что поле перестало участвовать в сценарии. Поэтому спрятанное обязательное поле может блокировать отправку, а заполненное ранее — уехать в заявку, хотя посетитель уже выбрал другую ветку.
Родной механизм помечает скрытые условием узлы и исключает их из набора данных. Именно это отличает условие от декоративного скрытия.
Как собрать понятную ветку
Начните с одного поля выбора и одной зависимой группы. Назовите варианты словами, которые менеджер поймёт в заявке: «Самовывоз» и «Курьер», а не «Вариант 1» и «Вариант 2». Затем проверьте обе ветки:
- зависимая группа появляется и исчезает;
- обязательность действует только когда группа видима;
- при смене выбора старые данные не доезжают;
- ошибка стоит у нужного поля;
- на телефоне страница не прыгает мимо раскрытой группы.
Где кончаются настройки
Разные адресаты писем, расчёт цены, создание задачи в определённом отделе и разные документы после отправки — уже не «показать поле». Добавьте в заявку скрытое значение ветки, а маршрутизацию делайте в CRM, webhook или отдельной формой. Так браузер сообщает факт выбора, но не хранит важное бизнес-правило.
Совет дизайнеру
Нарисуйте ветвление на бумаге до редактора. Если стрелок больше пяти, клиенту тоже будет трудно проходить форму. Иногда две короткие формы на разных страницах понятнее одного конструктора условий.