قيد

يُستخدم عمود constraint للتحقق من صحة إدخال المستخدم. يمنع المستخدم من المتابعة حتى تفي الإجابة بشرط تقوم بتعريفه.

إذا لم تلبِ الإجابة القيد، يتم عرض رسالة مُعرّفة في constraint_message للمستخدم.

📝 كيفية عمل القيود

قيمة السؤال ممثلة بنقطة (.)، والتي تعني "الإجابة الحالية." تُنشئ تعبيرًا منطقيًا باستخدام تلك القيمة.

تُستخدم القيود عادةً لـ:

  • تحديد نطاقات رقمية (مثال: يجب أن يكون العمر بين 0 و120)

  • طلب مطابقة تنسيقات (مثال: الرموز البريدية، البريد الإلكتروني)

  • فرض تبعيات (مثال: تاريخ الانتهاء بعد تاريخ البدء)

النوع
الاسم
label
constraint
constraint_message

integer

age

عمرك

. >= 18 and . <= 99

يجب أن يكون العمر بين 18 و99

text

zip

الرمز البريدي

regex(., '^\d{5}$')

أدخل رمزًا بريديًا مكونًا من 5 أرقام

text

البريد الإلكتروني

عنوان البريد الإلكتروني

regex(., '^[^@]+@[^@]+.[^@]+$')

أدخل بريدًا إلكترونيًا صالحًا

date

end

تاريخ الانتهاء

. >= ${start}

يجب أن يكون تاريخ الانتهاء بعد تاريخ البدء

☑️ استخدام النقطة (.) في constraint

النقطة . تمثل القيمة التي أدخلها المستخدم للسؤال الحالي. استخدمها داخل الدوال والتعابير:

  • . >= 0 — صالح إذا كانت القيمة 0 أو أكبر

  • regex(., '^\d{5}$') — صالح إذا طابق النمط

🔠 إشارات المتغيرات

يمكنك استخدام ${question_name} للإشارة إلى إجابات من أسئلة أخرى في النموذج. تأكد من أن الأسئلة المشار إليها تظهر في وقت سابق داخل النموذج.

مثال:

  • . > ${min_age} — يضمن أن الإدخال الحالي أكبر من قيمة مُدخلة سابقًا

🔢 العوامل والدوال للقيود

مثلما في relevance، يمكنك استخدام:

=, !=, >, <, >=, <= and, or, not()

Function
Description
Example

regex()

يتحقق من تنسيق إدخال نصي

regex(., '^\d{5}$') لرموز ZIP الأمريكية

string-length()

يفحص عدد الحروف

string-length(.) <= 50

selected()

يتحقق مما إذا تم اختيار خيار

selected(${choices}, 'option1')

today()

يحصل على التاريخ الحالي

. <= today()

now()

يحصل على التاريخ والوقت الحاليين

. <= now()

Last updated

Was this helpful?