Валидиране на отговори
Един начин да се осигури качество на данните е да добавите ограничения към полетата с данни във формуляра. Ограниченията помагат да се предотврати въвеждането от потребителите на невалидни или невъзможни отговори. Например, при питане за дохода на дадено лице, искате да избегнете нереалистични стойности, като отрицателни числа или изключително високи стойности. Добавянето на ограничения за данни към формуляра е лесно. Просто следвайте стъпките по-долу:
- Добавете нова колона, наречена “constraint”, към формуляра.
- В колоната “constraint” въведете формула, указваща ограниченията за отговора.
Пример
Нека разгледаме пример, при който искаме да добавим ограничение за дохода на лицето. Ограничението изисква доходът да бъде между $0 и $1,000,000. Ето как можете да настроите ограничението:
name | constraint |
|---|---|
| Доход | . >= 0 & . <= 1000000 |
В примера по-горе, “.” в формулата препраща обратно към променливата на въпроса, представляваща стойността, въведена от потребителя за въпроса “Доход”. Ограничението “. >= 0 && . <= 1000000” гарантира, че въведеният доход е по-голям или равен на 0 и по-малък или равен на 1,000,000.
Твърдо ограничение
Твърдото ограничение блокира изцяло подаването на формуляра, ако въведената стойност не удовлетворява израза. Анкетьорът не може да продължи, докато не въведе валидна стойност.
За добавяне на твърдо ограничение, въведете израза в колоната constraint. По избор добавете четимо от хора съобщение в constraint_message:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | age | Възраст на респондента | . > 0 and . <= 120 | Възрастта трябва да бъде между 1 и 120 |
| decimal | temperature | Телесна температура (°C) | . >= 35 and . <= 42 | Температурата трябва да бъде между 35°C и 42°C |
| text | phone | Телефонен номер | regex(., '^[0-9]{10}$') | Въведете 10-цифрен телефонен номер |
Множество условия
Комбинирайте условия с and / or:
. >= 0 and . <= 100
. = 'yes' or . = 'no'
Използване на regex() за валидиране на шаблон
Функцията regex(value, pattern) тества стойност спрямо регулярен израз:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| text | Имейл адрес | regex(., '^[^@]+@[^@]+\.[^@]+$') | Въведете валиден имейл адрес | |
| text | zip_code | Пощенски код | regex(., '^[0-9]{5}$') | Въведете 5-цифрен пощенски код |
Препратка към други полета в ограничение
Използвайте ${fieldname} за препратка към стойности от други въпроси:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | end_year | Крайна година | . >= ${start_year} | Крайната година трябва да бъде след началната година |
| decimal | loan_repaid | Изплатена сума | . <= ${loan_amount} | Не може да бъде изплатено повече от сумата на заема |
Меко предупреждение
Меко предупреждение (известно още като меко ограничение или предупреждение) предупреждава анкетьора, че дадена стойност изглежда необичайна, но все пак позволява продължаване. Това е полезно, когато дадена стойност е технически валидна, но статистически малко вероятна.
rtSurvey поддържа меки предупреждения чрез колоната constraint с подход към constraint_type, или чрез изгледа soft, комбиниран с поле за бележка.
Най-честият модел е да се използва бележка с израз relevant, маркираща подозрителната стойност, заедно с въпрос acknowledge за потвърждение:
type | name | label | relevant |
|---|---|---|---|
| integer | children | Брой деца | |
| note | children_warning | Предупреждение: Въведохте ${children} деца. Моля, потвърдете, че това е вярно. | . > 15 |
| trigger | children_confirm | Потвърдете, че броят на децата е верен | ${children} > 15 |
Меко предупреждение само с constraint_message
За по-просто меко предупреждение можете да формулирате ограничението да предупреждава при екстремни стойности, но все пак да позволява широк диапазон:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | children | Брой деца | . >= 0 and . <= 30 | Тази стойност изглежда много висока. Моля, проверете. |
Разграничението между твърди и меки ограничения е важно за качеството на данните. Използвайте твърди ограничения за логически невъзможни стойности (отрицателни възрасти, температури над 100°C). Използвайте меки предупреждения за статистически малко вероятни, но не невъзможни стойности — не искате да блокирате легитимни гранични случаи.