التحقق من صحة الإجابات
إحدى طرق ضمان جودة البيانات هي إضافة قيود إلى حقول البيانات في نموذجك. تساعد القيود على منع المستخدمين من إدخال إجابات غير صالحة أو مستحيلة. على سبيل المثال، عند السؤال عن دخل شخص ما، تريد تجنب القيم غير الواقعية، مثل الأرقام السالبة أو القيم المرتفعة جداً. إضافة قيود البيانات في نموذجك أمر سهل. اتبع الخطوات التالية:
- أضف عموداً جديداً يُسمى “constraint” إلى نموذجك.
- في عمود “constraint”، أدخل معادلة تحدد حدود الإجابة.
مثال
لنفكر في مثال حيث نريد إضافة قيد على دخل الشخص. يتطلب القيد أن يكون الدخل بين 0 و1,000,000 دولار. إليك كيفية إعداد القيد:
name | constraint |
|---|---|
| Income | . >= 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 التنبيهات اللينة. النمط الأكثر شيوعاً هو استخدام note مع تعبير 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). استخدم التنبيهات اللينة للقيم غير المرجّحة إحصائياً لكن ليست مستحيلة — لا تريد حجب الحالات الحدية المشروعة.