FreemiumProBusinessEnterprise

Условная логика: показать/скрыть поле

Что такое условная логика

Условная логика позволяет динамически показывать и скрывать поля формы в зависимости от ответов участника. Вместо длинной статичной формы участник видит только те поля, которые для него актуальны.

Пример: поле «Название компании» появляется только если в поле «Статус» выбрано значение «Представитель организации».

Типы правил

show_if — показать, если

Поле скрыто по умолчанию и появляется, когда условие выполнено.

Используйте, когда поле нужно только в определённых случаях:

  • «Номер комнаты» показывается, если выбран билет с проживанием
  • «Диетические требования» показывается, если отмечена опция «Питание»

hide_if — скрыть, если

Поле видимо по умолчанию и скрывается, когда условие выполнено.

Используйте, когда поле нужно большинству участников, кроме определённых случаев:

  • «Адрес доставки» скрывается, если участник выбрал «Самовывоз»

Поддерживаемые условия

Условия задаются на основе значений других полей формы.

Тип поля-источникаДоступные операторы
Выпадающий список (select)равно, не равно
Радио-кнопки (radio)равно, не равно
Чекбокс (checkbox)включён, выключён
Текстовое поле (text)заполнено, не заполнено
Числовое поле (number)равно, больше, меньше

Как настроить условную логику

  1. Откройте событие → вкладка «Регистрация» → конструктор формы.
  2. Выберите поле, для которого хотите добавить условие.
  3. В панели настроек поля найдите раздел «Условная логика».
  4. Нажмите «Добавить условие».
  5. Выберите:
    • Тип правила: «Показать, если» или «Скрыть, если»
    • Поле-источник (на основе какого поля принимается решение)
    • Оператор (равно, не равно, заполнено и т.д.)
    • Значение для сравнения
  6. Сохраните форму.

Несколько условий

Вы можете добавить несколько условий для одного поля. Все условия объединяются логическим И — поле показывается (или скрывается), только если все условия выполнены одновременно.

Reset on hide — сброс значения

Когда поле скрывается условной логикой, его значение автоматически сбрасывается. Это обеспечивает корректность данных:

  • Участник выбрал «С питанием» — появилось поле «Диетические требования», участник ввёл «Веган»
  • Участник передумал и выбрал «Без питания» — поле скрылось, значение «Веган» удалено
  • Итог: в базу данных не попадут диетические требования для участника без питания

Валидация на backend

Backend является единственным источником правды для валидации. При обработке формы сервер:

  1. Получает все значения, отправленные клиентом
  2. Пересчитывает условную логику на основе полученных значений
  3. Полностью игнорирует поля, которые по правилам должны быть скрыты
  4. Валидирует только видимые поля

Это защищает от манипуляций на стороне клиента и обеспечивает консистентность данных.

Рекомендации

  • Не создавайте слишком глубокие цепочки (больше 3 уровней) — это усложняет форму для участников
  • Тестируйте все ветки условий перед публикацией
  • Используйте режим предпросмотра, чтобы убедиться, что логика работает корректно
  • Помните: скрытые обязательные поля не блокируют отправку формы

Частые вопросы

Валидируются ли скрытые поля?
Нет. Если поле скрыто условной логикой, оно не валидируется и его значение не отправляется на сервер. Backend полностью игнорирует скрытые поля при обработке формы.
Что происходит с данными скрытого поля?
Когда поле скрывается, его значение сбрасывается (reset on hide). Если участник заполнил поле, затем изменил ответ так, что поле скрылось, — введённые данные удаляются.
Можно ли строить цепочки условий?
Да. Поле A может показать поле B, а поле B — поле C. Цепочка обрабатывается последовательно: если условие для B не выполнено, C тоже будет скрыто.
Работает ли условная логика в виджете на внешнем сайте?
Да. Условная логика работает одинаково во всех каналах: на сайте evntflo, в Telegram Mini App и в embed-виджете.