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

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها
1403/07/29 20:25

مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها

مطالعه بیشتر
آموزش کامل دریافت اطلاعات فرم با متدهای GET و POST در PHP (با رعایت اصول امنیتی)
1405/04/27 22:06

آموزش کامل دریافت اطلاعات فرم با متدهای GET و POST در PHP (با رعایت اصول امنیتی)

مطالعه بیشتر
آموزش جامع اعتبارسنجی حجم و نوع فایل آپلودی در PHP طبق استانداردهای امنیتی گوگل
1405/05/01 20:20

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

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

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

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

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

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

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

مطالعه بیشتر
تفاوت متد GET و POST در PHP؛ راهنمای جامع و استاندارد گوگل
1405/04/27 22:13

تفاوت متد GET و POST در PHP؛ راهنمای جامع و استاندارد گوگل

مطالعه بیشتر
آموزش کامل استفاده از float، clear، text و font در CSS برای طراحی وب: راهنمای جامع
1402/06/06 23:51

آموزش کامل استفاده از float، clear، text و font در CSS برای طراحی وب: راهنمای جامع

مطالعه بیشتر
پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of
1403/07/04 18:12

پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of

مطالعه بیشتر
آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)
1405/05/01 20:26

آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)

مطالعه بیشتر
آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا
1403/08/16 22:20

آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا

مطالعه بیشتر
چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان
1402/07/02 21:37

چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان

مطالعه بیشتر

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