آموزش رایگان Vue.js

مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی

22م آذر 1404 محراب حسن زاده
مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی

مدیریت فرم‌ها و ورودی‌ها در Vue.js یکی از اصلی‌ترین بخش‌های ساخت برنامه‌های تعاملی و کاربردی است. Vue.js با قابلیت‌های ویژه‌ای مانند v-model و ابزارهای کنترل ورودی، فرآیند مدیریت و اعتبارسنجی فرم‌ها را ساده و کارآمد می‌سازد. در این مقاله، با نحوه مدیریت فرم‌ها و ورودی‌ها در Vue.js آشنا می‌شویم.


استفاده از v-model برای مدیریت دوطرفه داده‌ها

Vue.js از v-model برای اتصال دوطرفه داده‌ها (two-way data binding) استفاده می‌کند. با استفاده از v-model می‌توانید داده‌ها را به عناصر ورودی متصل کرده و به طور خودکار هر تغییری در ورودی‌ها را در داده‌های Vue.js ذخیره کنید.

مثال ساده:




< div id = " app " >
  < input type = " text " v-model = " name " >
  < p > Welcome, { { name } } ! < / p >
< / div >



  new Vue ( {
    el : ' #app ' ,
    data ( ) {
      return {
        name : ' '
      } ;
    }
  } ) ;


در این مثال، هر تغییری در ورودی input به صورت خودکار در متغیر name ذخیره می‌شود و Vue.js این تغییر را در DOM نیز نمایش می‌دهد.


کار با ورودی‌های مختلف

v-model را می‌توان به انواع مختلفی از ورودی‌ها اعمال کرد:

  • ورودی متنی ( < input type = " text " > )

  • چک‌باکس (< input type = " checkbox " >)

  • دکمه‌های رادیویی (< input type = " radio " >)

  • لیست کشویی (< select >)


مثال برای انواع مختلف ورودی‌ها:




< div id = " app " >
  < input type = " text " v-model = " textValue " placeholder = " Enter text " >

  < input type = " checkbox " v-model = " isChecked " > Accept terms

  < input type = " radio " v-model = " picked " value = " Option A " > Option A
  < input type = " radio " v-model = " picked " value = " Option B " > Option B

  < select v-model = " selected " >
    < option disabled value = " " > Please select one < / option >
    < option > A < / option >
    < option > B < / option >
    < option > C < / option >
  < / select >

  < p > Text: { { textValue } } < / p >
  < p > Accepted: { { isChecked } } < / p >
  < p > Picked: { { picked } } < / p >
  < p > Selected: { { selected } } < / p >
< / div >



  new Vue ( {
    el : ' #app ' ,
    data ( ) {
      return {
        textValue : ' ',
        isChecked : false ,
        picked : ' ',
        selected : ' '
      } ;
    }
  } ) ;


در این مثال، v-model هر یک از این ورودی‌ها را به داده‌های مربوطه متصل می‌کند و تغییرات به‌طور خودکار در Vue ذخیره می‌شوند.


اعتبارسنجی فرم‌ها با Vue.js

اعتبارسنجی فرم‌ها برای اطمینان از ورود داده‌های درست ضروری است. می‌توانید اعتبارسنجی ساده‌ای را مستقیماً در Vue پیاده‌سازی کنید یا از کتابخانه‌هایی مانند Vuelidate و VeeValidate برای اعتبارسنجی پیشرفته‌تر استفاده کنید.

مثال اعتبارسنجی ساده:




< div id = " app " >
  < form @submit.prevent = " handleSubmit " >
    < input type = " text " v-model = " username " placeholder = " Username " >
    < span v-if = " username.length < 3 " > Username must be at least 3 characters < / span >

    < input type = " password " v-model = " password " placeholder = " Password " >
    < span v-if = " password.length < 6 " > Password must be at least 6 characters < / span >

    < button type = " submit " :disabled = " !isFormValid " > Submit < / button >
  < / form >
< / div >



  new Vue ( {
    el : ' #app ' ,
    data ( ) {
      return {
        username : ' ' ,
        password : ' '
      } ;
    } ,
    computed : {
      isFormValid ( ) {
        return this.username.length >= 3 && this.password.length >= 6 ;
      }
    } ,
    methods : {
      handleSubmit ( ) {
        alert ( ' Form submitted! ' ) ;
      }
    }
  } ) ;


در این مثال:

  • از computed property برای اعتبارسنجی استفاده شده است تا وضعیت isFormValid بر اساس شرایط اعتبارسنجی تنظیم شود.

  • اگر اعتبارسنجی شکست بخورد، پیام هشدار برای هر فیلد به نمایش درمی‌آید و دکمه ارسال غیرفعال می‌شود.


کار با فرم‌های پیچیده‌تر و چند داده‌ای

در فرم‌های بزرگ‌تر، به جای اتصال مستقیم به فیلدهای داده، می‌توانید از یک شیء برای مدیریت داده‌های فرم استفاده کنید. این روش سازماندهی بهتری برای داده‌ها و مدیریت آسان‌تر آن‌ها فراهم می‌آورد.

مثال فرم پیچیده:




< div id = " app " >
  < form @submit.prevent = " handleSubmit " >
    < label for = " name " > Name: < / label >
    < input type = " text " v-model = " form.name " id = " name " >

    < label for = " email " > Email: < / label >
    < input type = " email" v-model = " form.email " id = " email " >

    < label for = " age " > Age: < / label >
    < input type = " number " v-model = " form.age " id = " age " >

    < button type = " submit " > Submit < / button >
  < / form >
  < p > { { form } } < / p >
< / div >




  new Vue ( {
    el : ' #app ' ,
    data ( ) {
      return {
        form : {
          name : ' ' ,
          email : ' ' ,
          age : null
        }
      } ;
    } ,
    methods : {
      handleSubmit ( ) {
        console.log ( this.form ) ;
        alert ( ' Form submitted! ' ) ;
      }
    }
  } ) ;


در این مثال، تمامی فیلدهای فرم به داده form متصل شده‌اند و مقادیر آن‌ها به صورت یک شیء واحد در form مدیریت می‌شوند.


ریست کردن فرم‌ها

گاهی نیاز دارید که پس از ارسال فرم، مقادیر آن به حالت اولیه بازگردد. برای این کار، می‌توانید مقادیر data را به صورت دستی بازنشانی کنید.

مثال ریست کردن فرم:




methods : {
  handleSubmit ( ) {
    alert ( ' Form submitted! ' ) ;
    this.resetForm ( ) ;
  } ,
  resetForm ( ) {
    this.form.name = ' ' ;
    this.form.email = ' ' ;
    this.form.age = null ;
  }
}


در این مثال، پس از ارسال فرم، متد resetForm اجرا می‌شود و داده‌های فرم را به مقادیر اولیه بازنشانی می‌کند.


استفاده از v-model.lazy برای ورود کاراکتر به کاراکتر

به‌طور پیش‌فرض، v-model با هر ورودی کاربر (مثلا تایپ یک کاراکتر) داده‌ها را به‌روزرسانی می‌کند. اما گاهی نیاز دارید این به‌روزرسانی را تا زمان خروج از فیلد (blur) به تعویق بیندازید. در این صورت، می‌توانید از .lazy استفاده کنید.

مثال استفاده از v-model.lazy:




 < input type = " text " v-model.lazy = " username " >


در این مثال، مقدار username تنها زمانی به‌روزرسانی می‌شود که کاربر فیلد را ترک کند، نه با هر کاراکتر جدید.


نتیجه‌گیری

مدیریت فرم‌ها و ورودی‌ها در Vue.js با استفاده از v-model و سایر ابزارهای آن بسیار ساده و کارآمد است. با توانایی اعتبارسنجی و مدیریت دوطرفه داده‌ها، می‌توانید فرم‌های پیچیده‌ای را در پروژه‌های خود ایجاد کنید و تجربه کاربری بهتری فراهم آورید. Vue.js با این امکانات، فرآیند توسعه و مدیریت فرم‌ها را سریع و روان‌تر می‌کند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها
1م آبان 1403

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

مطالعه بیشتر
آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)
27م تیر 1405

آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)

مطالعه بیشتر
آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال
23م آذر 1404

آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
28م مهر 1403

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها

مطالعه بیشتر
آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی
16م تیر 1405

آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی

مطالعه بیشتر
آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML
13م خرداد 1405

آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML

مطالعه بیشتر
استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع
9م آبان 1403

استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع

مطالعه بیشتر
آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش
2م شهریور 1403

آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش

مطالعه بیشتر
آموزش کامل تفاوت echo و print در PHP به زبان ساده
21م خرداد 1405

آموزش کامل تفاوت echo و print در PHP به زبان ساده

مطالعه بیشتر
آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل
4م مهر 1403

آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل

مطالعه بیشتر
آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها
2م شهریور 1403

آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها

مطالعه بیشتر
آموزش Responsive Design با استفاده از Media Queries: طراحی واکنش‌گرا برای تمامی دستگاه‌ها
10م شهریور 1402

آموزش Responsive Design با استفاده از Media Queries: طراحی واکنش‌گرا برای تمامی دستگاه‌ها

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد