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

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

1404/09/22 00:40 محراب حسن زاده
مدیریت فرم‌ها و ورودی‌ها در 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 با این امکانات، فرآیند توسعه و مدیریت فرم‌ها را سریع و روان‌تر می‌کند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

استفاده از clip-path در CSS برای برش‌های زیبا و جذاب: راهنمای کامل
1403/08/16 22:58

استفاده از clip-path در CSS برای برش‌های زیبا و جذاب: راهنمای کامل

مطالعه بیشتر
آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها
1403/07/28 21:20

آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها

مطالعه بیشتر
آموزش توسعه و مدیریت پروژه‌های بزرگ در جاوا اسکریپت: آشنایی با ابزارها و فریم‌ورک‌های کاربردی
1403/08/04 19:43

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

مطالعه بیشتر
ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع
1403/08/11 20:59

ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع

مطالعه بیشتر
آموزش فیلتر کردن داده‌ها در PHP با توابع filter_var و preg_match
1405/05/13 21:29

آموزش فیلتر کردن داده‌ها در PHP با توابع filter_var و preg_match

مطالعه بیشتر
راهنمای جامع جلوگیری از SQL Injection در PHP (طبق استانداردهای گوگل)
1405/05/13 21:19

راهنمای جامع جلوگیری از SQL Injection در PHP (طبق استانداردهای گوگل)

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

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

مطالعه بیشتر
آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت
1402/05/23 00:08

آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت

مطالعه بیشتر
کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت
1402/05/25 00:16

کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت

مطالعه بیشتر
آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب
1405/03/15 00:08

آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب

مطالعه بیشتر
اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ
1402/06/28 23:20

اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ

مطالعه بیشتر
کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد
1402/06/18 22:55

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

مطالعه بیشتر

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