آموزش رایگان 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 با این امکانات، فرآیند توسعه و مدیریت فرم‌ها را سریع و روان‌تر می‌کند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی
23م آذر 1404

استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی

مطالعه بیشتر
تنظیم عرض و ارتفاع عناصر در CSS: استفاده از width، height، max و min برای کنترل دقیق اندازه‌ها
9م آبان 1403

تنظیم عرض و ارتفاع عناصر در CSS: استفاده از width، height، max و min برای کنترل دقیق اندازه‌ها

مطالعه بیشتر
مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها
4م مهر 1403

مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها

مطالعه بیشتر
استفاده از overflow در CSS برای مدیریت محتوای اضافی: راهنمای کامل و کاربردی
11م آبان 1403

استفاده از overflow در CSS برای مدیریت محتوای اضافی: راهنمای کامل و کاربردی

مطالعه بیشتر
آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol
10م آبان 1403

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol

مطالعه بیشتر
آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها
5م شهریور 1402

آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها

مطالعه بیشتر
توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6
2م شهریور 1403

توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6

مطالعه بیشتر
آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق
12م آبان 1403

آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق

مطالعه بیشتر
مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان
28م شهریور 1402

مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر
2م بهمن 1402

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

مطالعه بیشتر
آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی
5م آبان 1403

آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی

مطالعه بیشتر
آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل
29م آذر 1404

آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل

مطالعه بیشتر

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