Триггер / Подтверждение
Вопросы типа trigger отображают утверждение, которое перечислитель должен явно подтвердить перед продолжением.
Тип вопроса trigger (также называемый acknowledge) отображает утверждение с флажком. Перечислитель должен отметить флажок, подтверждая, что прочитал и понял утверждение, прежде чем форма позволит продолжить. Значение данных не хранится — только факт отметки флажка.
Базовая спецификация XLSForm
| type | name | label |
|---|---|---|
| trigger | consent_ack | Респондент дал устное информированное согласие. |
Или с использованием псевдонима acknowledge:
| type | name | label |
|---|---|---|
| acknowledge | consent_ack | Респондент дал устное информированное согласие. |
trigger и acknowledge эквивалентны — используйте тот, который задокументирован в вашей платформе.
Применение
Вопросы типа trigger/acknowledge обычно используются для:
- Информированного согласия — подтверждение получения согласия перечислителем до записи конфиденциальных данных
- Мягких предупреждений — предупреждение о необычном значении с требованием явного подтверждения перед продолжением
- Пунктов контрольного списка — подтверждение выполнения физического наблюдения (например, «Я непосредственно наблюдал источник воды»)
- Инструкций — принудительное подтверждение перечислителем инструкций на уровне раздела перед продолжением
- Проверок качества — отметка аномальных значений и требование их проверки перечислителем
Примеры использования
Подтверждение согласия
| type | name | label | required |
|---|---|---|---|
| trigger | consent | Респондент дал устное информированное согласие на участие в данном опросе. | yes |
Мягкое предупреждение для аномальных значений
Используется совместно с выражением relevant для отображения триггера только при подозрительном значении:
| type | name | label | relevant | required |
|---|---|---|---|---|
| integer | children | Количество детей | ||
| trigger | children_confirm | Вы ввели ${children} детей. Пожалуйста, уточните у респондента и нажмите OK для подтверждения. | ${children} > 10 | ${children} > 10 |
Подтверждение инструкций в начале раздела
| type | name | label |
|---|---|---|
| trigger | section_b_ack | Раздел Б: Использование сельскохозяйственных земель. Задайте все вопросы этого раздела только главе домохозяйства. |
Обязательность триггера
Добавьте required: yes, чтобы предотвратить продолжение до отметки флажка:
| type | name | label | required | required_message |
|---|---|---|---|---|
| trigger | safety_check | Всё защитное оборудование имеется и исправно. | yes | Необходимо подтвердить перед продолжением. |
Условное отображение
Показывать триггер только при выполнении условия:
| type | name | label | relevant |
|---|---|---|---|
| select_one yesno | has_well | Есть ли у домохозяйства колодец? | |
| trigger | well_observation | Подтвердите, что вы непосредственно осмотрели состояние колодца. | ${has_well} = 'yes' |
Отличие от note
note | trigger | |
|---|---|---|
| Отображает текст | Да | Да |
| Требует взаимодействия | Нет | Да (необходимо отметить) |
| Хранит данные | Нет | Нет (только OK/отмечено) |
| Может блокировать продолжение | Нет | Да (с required) |
Лучшие практики
- Держите метки триггеров краткими и действенными — перечислитель должен прочитать и подтвердить за секунды.
- Всегда добавляйте
required: yes, когда подтверждение обязательно. - Используйте триггеры для согласия и проверок безопасности, где нужна запись подтверждения перечислителем.
- Комбинируйте с
relevantдля условных мягких предупреждений, чтобы триггер появлялся только при необходимости проверки значения.
Ограничения
- Поля trigger не хранят значимых данных — они только фиксируют факт отметки флажка.
- Виджет trigger отображается как простой флажок/кнопка на большинстве клиентов; это не полноценная электронная подпись.