فرمها یکی از رایجترین ابزارها برای دریافت اطلاعات از کاربران هستند؛ از فرم ثبتنام و درخواست خدمات گرفته تا فرمهای نظرسنجی، استخدام، ثبت سفارش و دریافت اطلاعات مشتری.
اما همه فرمها یکسان نیستند.
در یک فرم معمولی، ساختار فرم از قبل مشخص است و معمولاً همه کاربران مجموعهای تقریباً یکسان از فیلدها را مشاهده میکنند.
در مقابل، فرم داینامیک (Dynamic Form) میتواند بر اساس اطلاعات واردشده توسط کاربر، شرایط تعریفشده، انتخابهای قبلی یا وضعیت فرآیند، رفتار و محتوای خود را تغییر دهد.
اگر هنوز با مفهوم فرمساز آشنا نیستید، در مقاله فرمساز آنلاین چیست؟ درباره مفهوم فرمساز و کاربردهای آن بیشتر توضیح دادهایم. تمرکز این مقاله روی رفتار داینامیک فرم و تفاوت آن با فرم معمولی است.
فرم داینامیک چیست؟
برای مثال، تصور کنید در یک فرم درخواست خدمات، کاربر ابتدا نوع خدمت را انتخاب میکند. اگر گزینه «طراحی سایت» را انتخاب کند، فیلدهای مربوط به تعداد صفحات، نوع سایت و امکانات موردنیاز نمایش داده میشوند؛ اما اگر «پشتیبانی سایت» را انتخاب کند، مجموعه دیگری از فیلدها ظاهر میشود.
در این حالت، فرم صرفاً اطلاعات دریافت نمیکند؛ بلکه بر اساس ورودی کاربر تصمیم میگیرد چه اطلاعاتی موردنیاز است.
این همان ایده اصلی فرم داینامیک است.

فرم معمولی چیست؟
فرم معمولی یا Static Form ساختار مشخص و ثابتی دارد.
برای مثال، یک فرم تماس ساده ممکن است شامل این فیلدها باشد:
- نام و نام خانوادگی
- شماره تماس
- ایمیل
- موضوع
- پیام
در این نوع فرم، ساختار از ابتدا مشخص است و کاربر معمولاً همان مجموعه فیلدها را مشاهده میکند.
این مدل برای بسیاری از سناریوهای ساده کاملاً مناسب است.
مثلاً اگر فقط به یک فرم تماس، فرم عضویت ساده یا فرم دریافت بازخورد نیاز دارید، نیازی نیست فرآیند را پیچیدهتر کنید.
بنابراین فرم داینامیک جایگزین همه فرمهای معمولی نیست.
مسئله زمانی اهمیت پیدا میکند که فرم باید بر اساس شرایط مختلف، رفتار متفاوتی داشته باشد.
تفاوت فرم داینامیک و فرم معمولی چیست؟
مهمترین تفاوت این دو نوع فرم، در رفتار فرم هنگام تعامل کاربر است.
| ویژگی | فرم معمولی | فرم داینامیک |
|---|---|---|
| ساختار فیلدها | ثابت | قابل تغییر |
| نمایش فیلدها | معمولاً برای همه یکسان | وابسته به شرایط |
| منطق شرطی | محدود یا ندارد | دارد |
| تجربه کاربر | ساده | شخصیسازیشدهتر |
| مناسب برای فرمهای پیچیده | محدود | مناسب |
| تغییر فیلدها بر اساس ورودی | معمولاً ندارد | دارد |
| کنترل فرآیند | ساده | پیشرفتهتر |
در واقع، میتوان این تفاوت را اینطور خلاصه کرد:
فرم معمولی اطلاعات مشخصی را دریافت میکند؛ فرم داینامیک بر اساس شرایط تصمیم میگیرد چه اطلاعاتی را دریافت کند.
فرم داینامیک چگونه کار میکند؟
یک فرم داینامیک معمولاً بر اساس مجموعهای از قوانین و شرایط رفتار میکند.
برای مثال:
اگر نوع مشتری = شرکت
- نمایش نام شرکت
- نمایش شناسه ملی
- نمایش کد اقتصادی
اگر نوع مشتری = شخص حقیقی
- نمایش کد ملی
- نمایش تاریخ تولد
یا:
اگر کاربر «بله» را انتخاب کرد → نمایش فیلد توضیحات
اگر کاربر «خیر» را انتخاب کرد → پنهان کردن فیلد توضیحات
این قوانین باعث میشوند فرم نسبت به رفتار کاربر واکنش نشان دهد.
به همین دلیل است که در بسیاری از موارد، فرم داینامیک با مفاهیمی مانند Conditional Logic یا Conditional Fields همراه میشود.

منطق شرطی در فرمهای داینامیک چیست؟
یکی از مهمترین قابلیتهای فرم داینامیک، منطق شرطی (Conditional Logic) است.
منطق شرطی یعنی نمایش، مخفی کردن، فعال کردن یا تغییر رفتار یک فیلد بر اساس مقدار فیلد دیگر.
مثلاً سؤال اول:
آیا برای خرید به فاکتور رسمی نیاز دارید؟
اگر کاربر «بله» را انتخاب کند، فیلدهای زیر نمایش داده شوند:
- نام شرکت
- شناسه ملی
- شماره اقتصادی
- آدرس شرکت
اما اگر کاربر «خیر» را انتخاب کند، این فیلدها اصلاً نمایش داده نشوند.
این رفتار چند مزیت دارد:
- فرم کوتاهتر میشود.
- کاربر اطلاعات غیرضروری نمیبیند.
- احتمال اشتباه کاهش پیدا میکند.
- اطلاعات مرتبطتری دریافت میشود.
- تجربه کاربری سادهتر میشود.
چرا فرم داینامیک مهم است؟
هرچه فرآیند دریافت اطلاعات پیچیدهتر شود، نمایش همه فیلدها به همه کاربران میتواند تجربه کاربری نامناسبی ایجاد کند.
فرض کنید یک فرم استخدام ۳۰ فیلد داشته باشد.
اگر همه کاربران تمام ۳۰ فیلد را ببینند، فرم ممکن است طولانی و خستهکننده باشد.
اما میتوان فرم را مرحلهای و داینامیک طراحی کرد:
نوع همکاری؟ → تماموقت → سابقه کاری → نمایش اطلاعات شغلی
در مقابل: نوع همکاری؟ → پارهوقت → ساعات موردنظر → نمایش اطلاعات مربوط به همکاری پارهوقت
در این حالت، کاربر فقط اطلاعاتی را میبیند که در همان مسیر برای او مرتبط هستند.
فرم داینامیک چه کاربردهایی دارد؟
فرمهای داینامیک در بسیاری از فرآیندهای کسبوکار قابل استفاده هستند.
فرم ثبت سفارش
نوع محصول یا خدمت میتواند تعیین کند که چه اطلاعات دیگری باید دریافت شود.
برای مثال، انتخاب نوع چاپ میتواند فیلدهای مربوط به این موارد را نمایش دهد:
- ابعاد
- جنس
- تعداد
- نوع چاپ
فرم استخدام
فرم استخدام میتواند بر اساس نوع موقعیت شغلی، اطلاعات متفاوتی دریافت کند.
مثلاً برای یک موقعیت برنامهنویسی:
- زبانهای برنامهنویسی
- سابقه کاری
- لینک GitHub
- نمونهکار
درحالیکه برای یک موقعیت دیگر، مجموعه متفاوتی از اطلاعات موردنیاز است.
فرم درخواست خدمات
فرض کنید یک شرکت چند نوع خدمت ارائه میکند.
انتخاب خدمت میتواند فرم را تغییر دهد و فقط اطلاعات مرتبط با همان خدمت را نمایش دهد.
این موضوع باعث میشود یک فرم واحد بتواند چند فرآیند مختلف را پوشش دهد.
فرمهای ارزیابی و نظرسنجی
در نظرسنجیها پاسخ یک سؤال میتواند سؤال بعدی را تعیین کند.
مثلاً: آیا از محصول راضی بودید؟
اگر کاربر «خیر» را انتخاب کند: دلیل نارضایتی خود را توضیح دهید.
اگر «بله» را انتخاب کند: کدام ویژگی محصول را بیشتر دوست داشتید؟
در این حالت، فرم بر اساس پاسخ کاربر مسیر متفاوتی را طی میکند.
فرمهای سازمانی
در فرآیندهای سازمانی، معمولاً اطلاعات موردنیاز همه افراد یکسان نیست.
فرم میتواند بر اساس این موارد، فیلدها و مراحل متفاوتی را نمایش دهد:
- نوع درخواست
- واحد سازمانی
- سمت کاربر
- نوع فرآیند
- سطح دسترسی
آیا فرم داینامیک همیشه بهتر از فرم معمولی است؟
خیر.
این نکته برای انتخاب درست معماری فرم بسیار مهم است.
اگر فرم شما فقط شامل چند فیلد ساده است، استفاده از منطق داینامیک ممکن است پیچیدگی غیرضروری ایجاد کند.
برای مثال، یک فرم تماس با پنج فیلد نیازی به سیستم پیچیدهای برای Dynamic Fields ندارد.
اما زمانی که:
- تعداد فیلدها زیاد است،
- کاربران مختلف اطلاعات متفاوتی نیاز دارند،
- فرآیند چندمرحلهای است،
- وابستگی بین فیلدها وجود دارد،
- یا اطلاعات باید بر اساس شرایط مختلف تغییر کند،
فرم داینامیک میتواند انتخاب منطقیتری باشد.
بنابراین معیار اصلی، پیچیدگی فرآیند دریافت اطلاعات است، نه صرفاً تعداد فیلدها.
فرم داینامیک چه تأثیری بر تجربه کاربری دارد؟
یکی از مهمترین دلایل استفاده از فرمهای داینامیک، بهبود UX است.
کاربر معمولاً نمیخواهد با دهها فیلدی مواجه شود که هیچ ارتباطی با درخواست او ندارند.
فرم داینامیک میتواند اطلاعات را مرحلهبهمرحله و متناسب با انتخابهای کاربر نمایش دهد.
این موضوع میتواند باعث شود:
- فرم سادهتر به نظر برسد.
- کاربر سریعتر مسیر موردنظرش را پیدا کند.
- اطلاعات غیرضروری کمتر نمایش داده شوند.
- احتمال رها کردن فرم کاهش پیدا کند.
- فرآیند تکمیل فرم قابل فهمتر شود.
البته داینامیک بودن فرم بهتنهایی تضمینکننده UX بهتر نیست.
اگر فیلدها بدون منطق مناسب ظاهر و مخفی شوند یا رفتار فرم برای کاربر قابل پیشبینی نباشد، همین قابلیت میتواند باعث سردرگمی شود.
بنابراین Dynamic بودن باید در خدمت تجربه کاربر باشد، نه صرفاً یک ویژگی فنی.
فرم داینامیک در چه زمانی ارزش بیشتری دارد؟
میتوان یک قانون ساده در نظر گرفت:
اگر پاسخ یک سؤال روی سؤالهای بعدی تأثیر میگذارد، احتمالاً فرم شما میتواند از منطق داینامیک استفاده کند.
مثلاً:
- نوع حساب → نوع اطلاعات موردنیاز
- نوع خدمت → جزئیات خدمت
- نوع محصول → ویژگیهای محصول
- نوع درخواست → مدارک موردنیاز
- نوع کاربر → اطلاعات تکمیلی
هرچه این وابستگیها بیشتر شوند، طراحی یک فرم کاملاً ثابت دشوارتر میشود.
فرمساز داینامیک چیست؟
یک Dynamic Form Builder ابزاری است که به کاربر اجازه میدهد بدون نیاز به پیادهسازی دستی تکتک فرمها، فرمهایی با رفتار و ساختار قابل تنظیم ایجاد کند.
در چنین سیستمهایی معمولاً امکاناتی مانند موارد زیر وجود دارد:
- ایجاد فیلدهای مختلف
- تنظیم قوانین اعتبارسنجی
- تعریف فیلدهای شرطی
- تعیین ارتباط بین فیلدها
- تغییر ترتیب فیلدها
- تنظیم الزامی یا اختیاری بودن فیلدها
- مدیریت ساختار فرم
- دریافت دادههای ارسالشده
در واقع، هدف فرمساز داینامیک این است که ساخت و تغییر فرم را از یک فرآیند کاملاً وابسته به توسعهدهنده، به یک فرآیند قابل مدیریت و تنظیم تبدیل کند.
برای اعتبارسنجی دادهها در فرمهای وب مدرن معمولاً از الگوهایی مثل React Hook Form و Zod استفاده میشود؛ منابع پایه فرمهای وب را هم میتوانید در MDN Web Forms ببینید.
تفاوت فرم داینامیک با فرمساز چیست؟
این دو مفهوم گاهی با یکدیگر اشتباه گرفته میشوند.
فرم داینامیک به رفتار و ساختار یک فرم اشاره دارد.
اما فرمساز ابزاری برای ایجاد و مدیریت فرمها است.
بنابراین:
فرم داینامیک یک نوع فرم یا یک قابلیت است؛ فرمساز ابزاری برای ساخت و مدیریت آن فرمهاست.
یک فرمساز میتواند امکان ایجاد فرمهای داینامیک را فراهم کند، اما هر فرم داینامیکی الزاماً با یک فرمساز ساخته نشده است.
اگر میخواهید بیشتر درباره خودِ فرمساز بدانید، مقاله فرمساز آنلاین چیست؟ را بخوانید.
فرم داینامیک برای چه کسبوکارهایی مناسب است؟
استفاده از فرم داینامیک میتواند برای کسبوکارهایی که فرآیندهای متنوع و قابل تغییر دارند، کاربرد بیشتری داشته باشد.
برای مثال:
- شرکتهای ارائهدهنده خدمات
- سازمانها و شرکتهای بزرگ
- سامانههای ثبت درخواست
- سیستمهای استخدام
- فروشگاههای آنلاین
- پلتفرمهای آموزشی
- سیستمهای CRM
- سامانههای ارزیابی
- فرآیندهای اداری
- فرمهای ثبت سفارش
در چنین سیستمهایی معمولاً یک فرم ثابت نمیتواند تمام حالتهای مختلف فرآیند را بهشکل مناسبی پوشش دهد.
فرم داینامیک چه زمانی انتخاب مناسبی نیست؟
گاهی اوقات ساده نگه داشتن فرم بهترین تصمیم است.
اگر فرآیند شما:
- ساده است،
- تعداد فیلدهای کمی دارد،
- وابستگی بین فیلدها وجود ندارد،
- برای تمام کاربران تقریباً یکسان است،
یک فرم معمولی میتواند کاملاً کافی باشد.
نباید صرفاً به دلیل مدرنتر بودن یک تکنولوژی، از آن استفاده کرد.
پیچیدگی باید زمانی وارد محصول شود که یک نیاز واقعی وجود داشته باشد.
فرم داینامیک؛ فقط تغییر فیلدها نیست
گاهی Dynamic Form صرفاً به معنای نمایش و مخفی کردن چند فیلد در نظر گرفته میشود، اما مفهوم آن میتواند گستردهتر باشد.
یک فرم داینامیک میتواند در سطحهای مختلف تغییر کند:
سطح اول: نمایش فیلد
اگر A = بله → نمایش B
سطح دوم: اعتبارسنجی
اگر A = شرکت → شناسه ملی الزامی باشد
سطح سوم: ساختار فرم
نوع درخواست → مرحله بعدی متفاوت
سطح چهارم: داده
مقادیر فیلدها میتوانند روی گزینهها و دادههای قابل انتخاب تأثیر بگذارند.
بنابراین Dynamic بودن فرم میتواند از یک UI ساده تا یک فرآیند کامل مبتنی بر قوانین گسترش پیدا کند.
جمعبندی
فرم معمولی زمانی مناسب است که فرآیند دریافت اطلاعات ساده و ثابت باشد.
اما وقتی اطلاعات موردنیاز کاربران به انتخابها، شرایط یا مسیر فرآیند وابسته میشود، فرم داینامیک میتواند ساختار مناسبتری ایجاد کند.
فرم داینامیک با استفاده از منطق شرطی، نمایش و مخفی کردن فیلدها، اعتبارسنجی وابسته به شرایط و تغییر مسیر فرم، امکان ایجاد تجربهای متناسبتر با نیاز هر کاربر را فراهم میکند.
در نهایت، هدف از ساخت یک فرم داینامیک نباید صرفاً پیچیدهتر کردن فرم باشد؛ بلکه باید دریافت اطلاعات درست، در زمان درست و با کمترین اصطکاک برای کاربر باشد.
اگر یک فرآیند بهاندازهای پیچیده شده که یک فرم ثابت نمیتواند بهخوبی پاسخگوی تمام حالتهای آن باشد، احتمالاً زمان آن رسیده است که به سراغ فرمهای داینامیک بروید.
Formora؛ نمونهای از یک پروژه فرم آنلاین
اگر به دنبال ساخت فرمهایی با فیلدهای قابل تنظیم، اعتبارسنجی، منطق شرطی و ساختار قابل مدیریت هستید، Formora یکی از پروژههای من در زمینه طراحی و توسعه فرمهای آنلاین است که با هدف ایجاد تجربهای انعطافپذیر برای ساخت و مدیریت فرمها توسعه داده شده است.
میتوانید صفحه پروژه Formora را ببینید یا مستقیماً دموی آنلاین Formora را امتحان کنید.