Текст
Тип вопроса с свободным текстовым ответом в rtSurvey
Тип вопроса text собирает свободный текстовый ответ — любую последовательность символов. Это наиболее гибкий тип ввода, используемый для имён, адресов, описаний, кодов и всего, что не подходит под более конкретный тип.
rtSurvey также расширяет text виджетами ввода времени, позволяющими точный ввод времени с выбором из часов.
Базовая спецификация XLSForm
| type | name | label |
|---|---|---|
| text | respondent_name | Полное имя респондента |
| text | address | Домашний адрес |
Дополнительную информацию о стандартном типе text XLSForm см. в спецификации XLSForm.
Применение
Текстовые вопросы используются для:
- Имён, адресов, свободных описаний
- Открытых комментариев или отзывов
- Кодов, идентификаторов или справочных номеров, не подходящих для integer/decimal
- Сбора значений времени с расширениями rtSurvey для ввода времени
- Полей автозаполнения текста (через
search-autocomplete-noedit-v2())
Стандартные варианты внешнего вида
| Внешний вид | Описание |
|---|---|
| (нет) | Однострочное текстовое поле ввода |
multiline | Многострочное текстовое поле — лучше для более длинного свободного текста в веб |
Расширения rtSurvey для ввода времени
rtSurvey расширяет text виджетом выбора времени для сбора значений времени. Эти варианты внешнего вида отображают значок часов, нажав который перечислитель выбирает часы, минуты, секунды или миллисекунды.
Варианты внешнего вида
| Внешний вид | Описание |
|---|---|
inline | Значок часов отображается рядом с полем |
inline colors("RRGGBB") | Значок часов с пользовательским цветом hex |
inline-1line | Часы в компактном формате одной строки |
inline-1line-RRGGBB | Однострочный с пользовательским цветом значка (hex, без #) |
inline-1line colors("RRGGBB","RRGGBB") | Однострочный с двумя цветами |
inline-onlyresult | Значок часов исчезает после выбора; отображается только значение |
inline-onlyresult colors("RRGGBB") | То же, с пользовательским цветом значка |
Токены формата времени
Добавьте строку формата в скобках для управления отображаемыми компонентами времени:
| Строка формата | Отображает |
|---|---|
inline-[%H:%M] | Часы и минуты (24-часовой формат) |
inline-[%h:%M] | Часы и минуты (12-часовой формат) |
inline-[%H:%M:%S] | Часы, минуты, секунды (24-часовой) |
inline-[%h:%M:%S] | Часы, минуты, секунды (12-часовой) |
inline-[%H:%M:%3] | Часы, минуты, миллисекунды |
inline-[%M:%S] | Только минуты и секунды |
inline-[%M:%3] | Только минуты и миллисекунды |
inline-[%S] | Только секунды |
inline-[%3] | Только миллисекунды |
inline-[%H] | Только часы (24-часовой) |
inline-[%h] | Только часы (12-часовой) |
Пример: Запись продолжительности задачи в минутах и секундах
| type | name | label | appearance |
|---|---|---|---|
| text | task_duration | Время, затраченное на выполнение задачи | inline-[%M:%S] |
Пример: Запись времени события в 24-часовом формате с пользовательским цветом
| type | name | label | appearance |
|---|---|---|---|
| text | event_time | Время события | inline-1line colors("0099FF") |
Формат данных
Текстовые данные хранятся и экспортируются как обычная строка. Для ввода времени с использованием виджета часов значение хранится в формате, соответствующем выбранной строке формата (например, 14:32 для %H:%M).
Ограничения и валидация
Применяйте ограничения для соблюдения формата, длины или шаблона:
| type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| text | name | Полное имя | string-length(.) >= 2 | Имя должно содержать не менее 2 символов |
| text | code | Справочный код | regex(., '^[A-Z]{2}[0-9]{4}$') | Введите 2 заглавные буквы и 4 цифры |
| text | phone | Номер телефона | regex(., '^[0-9]{9,15}$') | Введите действительный номер телефона |
Лучшие практики
- Используйте более конкретные типы (
integer,decimal,date) везде, где данные имеют известную структуру — это предотвращает недопустимые записи и упрощает анализ. - Добавляйте
constraintсstring-length()илиregex()для проверки кодов или идентификаторов. - Используйте внешний вид
multilineдля открытых вопросов, где респонденты могут написать несколько предложений. - При сборе данных о времени выбирайте токены формата, соответствующие точности, необходимой для анализа — сбор миллисекунд при необходимости только в минутах напрасно тратит усилия перечислителя.
Поддержка платформ
Тип вопроса text и все варианты внешнего вида для ввода времени поддерживаются на iOS, Android и веб-платформах.
Ограничения
- Текстовые ответы имеют свободную форму — встроенной проверки орфографии или ограничения словаря (кроме шаблонов regex) нет.
- Виджет inline для ввода времени является расширением rtSurvey и не является частью стандартной спецификации XLSForm.