Что такое условная логика
Условная логика позволяет динамически показывать и скрывать поля формы в зависимости от ответов участника. Вместо длинной статичной формы участник видит только те поля, которые для него актуальны.
Пример: поле «Название компании» появляется только если в поле «Статус» выбрано значение «Представитель организации».
Типы правил
show_if — показать, если
Поле скрыто по умолчанию и появляется, когда условие выполнено.
Используйте, когда поле нужно только в определённых случаях:
- «Номер комнаты» показывается, если выбран билет с проживанием
- «Диетические требования» показывается, если отмечена опция «Питание»
hide_if — скрыть, если
Поле видимо по умолчанию и скрывается, когда условие выполнено.
Используйте, когда поле нужно большинству участников, кроме определённых случаев:
- «Адрес доставки» скрывается, если участник выбрал «Самовывоз»
Поддерживаемые условия
Условия задаются на основе значений других полей формы.
| Тип поля-источника | Доступные операторы |
|---|---|
| Выпадающий список (select) | равно, не равно |
| Радио-кнопки (radio) | равно, не равно |
| Чекбокс (checkbox) | включён, выключён |
| Текстовое поле (text) | заполнено, не заполнено |
| Числовое поле (number) | равно, больше, меньше |
Как настроить условную логику
- Откройте событие → вкладка «Регистрация» → конструктор формы.
- Выберите поле, для которого хотите добавить условие.
- В панели настроек поля найдите раздел «Условная логика».
- Нажмите «Добавить условие».
- Выберите:
- Тип правила: «Показать, если» или «Скрыть, если»
- Поле-источник (на основе какого поля принимается решение)
- Оператор (равно, не равно, заполнено и т.д.)
- Значение для сравнения
- Сохраните форму.
Несколько условий
Вы можете добавить несколько условий для одного поля. Все условия объединяются логическим И — поле показывается (или скрывается), только если все условия выполнены одновременно.
Reset on hide — сброс значения
Когда поле скрывается условной логикой, его значение автоматически сбрасывается. Это обеспечивает корректность данных:
- Участник выбрал «С питанием» — появилось поле «Диетические требования», участник ввёл «Веган»
- Участник передумал и выбрал «Без питания» — поле скрылось, значение «Веган» удалено
- Итог: в базу данных не попадут диетические требования для участника без питания
Валидация на backend
Backend является единственным источником правды для валидации. При обработке формы сервер:
- Получает все значения, отправленные клиентом
- Пересчитывает условную логику на основе полученных значений
- Полностью игнорирует поля, которые по правилам должны быть скрыты
- Валидирует только видимые поля
Это защищает от манипуляций на стороне клиента и обеспечивает консистентность данных.
Рекомендации
- Не создавайте слишком глубокие цепочки (больше 3 уровней) — это усложняет форму для участников
- Тестируйте все ветки условий перед публикацией
- Используйте режим предпросмотра, чтобы убедиться, что логика работает корректно
- Помните: скрытые обязательные поля не блокируют отправку формы