Скрытое поле
Скрытые поля хранят значения, никогда не показываемые респонденту — используются для передачи контекста, предзаполнения данных или хранения промежуточных результатов.
Поле типа hidden хранит значение, которое никогда не отображается респонденту. В отличие от calculate (который вычисляет значение), hidden используется для хранения внешне предоставленного значения — например, идентификатора задачи, идентификатора домохозяйства из другой системы или кода перечислителя, вводимого при запуске формы.
Базовая спецификация XLSForm
| type | name | label |
|---|---|---|
| hidden | household_id |
Метки для скрытых полей не обязательны, поскольку ничего не отображается на экране.
Применение
Скрытые поля обычно используются для:
- Передачи предварительно назначенного ID из системы управления опросом (например, ID домохозяйства, номер дела, код задачи)
- Хранения версии формы или метаданных развёртывания
- Внедрения конфигурации, специфичной для перечислителя, при запуске формы
- Переноса данных из родительской формы в дочернюю в связанных рабочих процессах
- Хранения значения, полученного из параметров URL при открытии формы через веб-ссылку
Установка значения по умолчанию
Наиболее распространённый шаблон — использование hidden с выражением default, чтобы значение устанавливалось при открытии формы:
| type | name | default |
|---|---|---|
| hidden | deployment_code | ‘ZONE_A_2024’ |
| hidden | form_version | ‘3.1’ |
Ссылка на скрытое поле в вычислениях
Скрытые значения можно использовать в ссылках, как и любое другое поле, через ${fieldname}:
| type | name | label | calculation |
|---|---|---|---|
| hidden | zone_code | ||
| calculate | label_prefix | concat(’[’, ${zone_code}, ‘] ‘) | |
| note | intro | ${label_prefix} Добро пожаловать в опрос домохозяйства |
Использование hidden с предзаполнением / параметрами URL
При запуске веб-формы по URL можно передавать параметры, заполняющие скрытые поля. Это позволяет предварительно загружать ID домохозяйства или код задачи без необходимости их ввода перечислителем:
https://your-server.com/form/FORMID?household_id=H00123&zone_code=NORTH
Поле с именем household_id будет автоматически заполнено значением H00123.
Лучшие практики
- Используйте
hidden(неcalculate), когда значение вводится извне и не должно пересчитываться. - Используйте
calculate, когда значение выводится из других полей формы. - Всегда устанавливайте
default, если скрытое поле должно иметь значение — скрытое поле без значения по умолчанию будет пустым. - Давайте скрытым полям понятные имена (например, добавляйте префикс
_hidden_или используйте согласованное соглашение об именовании).
Ограничения
- Скрытые поля включаются в экспортированные данные, как и любое другое поле.
- Они не могут отображаться условно — они всегда присутствуют (но невидимы).
- Если нужно поле, которое вычисляется динамически, используйте
calculate.