Formulir Vue.js dan Pengikatan Input

Formulir merupakan bagian penting dari aplikasi web, yang memungkinkan pengguna memasukkan dan mengirimkan data. Vue.js menyederhanakan penanganan formulir dan pengikatan input dengan menyediakan cara intuitif untuk mengelola input pengguna dan menyinkronkannya dengan data aplikasi Anda. Artikel ini akan memandu Anda melalui dasar-dasar bekerja dengan formulir dan pengikatan input di Vue.js.

Dasar-dasar Pengikatan Input

Dalam Vue.js, pengikatan data dua arah untuk input formulir dicapai menggunakan direktif v-model. Direktif ini mengikat nilai elemen input ke properti data, memastikan bahwa setiap perubahan pada input tercermin dalam data dan sebaliknya.

<template>
  <div>
    <input v-model="message" placeholder="Type something"/>
    <p>Message: {{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    };
  }
};
</script>

Dalam contoh ini, perintah v-model mengikat nilai bidang input ke properti data message. Setiap teks yang dimasukkan ke dalam bidang input akan langsung tercermin dalam properti message dan ditampilkan dalam paragraf.

Bekerja dengan Berbagai Jenis Input

Direktif v-model berfungsi dengan berbagai jenis input, termasuk kolom teks, kotak centang, tombol radio, dan menu dropdown pilihan. Berikut cara menggunakan v-model dengan berbagai jenis input:

  • Masukan Teks: <input type="text" v-model="text" />
  • Kotak centang:<input type="checkbox" v-model="checked" />
  • Tombol Radio: <input type="radio" v-model="selected" value="option1" />
  • Pilih Dropdown:<select v-model="selected"> <option value="option1">Option 1</option> </select>

Penanganan Pengiriman Formulir

Untuk menangani pengiriman formulir, Anda dapat menggunakan event listener @submit pada elemen <form>. Berikut ini contoh sederhana tentang cara menangani pengiriman formulir di Vue.js:

<template>
  <form @submit.prevent="submitForm">
    <input v-model="username" placeholder="Enter your username"/>
    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      username: ''
    };
  },
  methods: {
    submitForm() {
      alert('Form submitted with username: ' + this.username);
    }
  }
};
</script>

Dalam contoh ini, perintah @submit.prevent mendengarkan peristiwa submit formulir dan mencegah tindakan default. Metode submitForm dipanggil, yang menampilkan peringatan dengan nama pengguna yang dikirimkan.

Menggunakan Validasi Formulir

Memvalidasi masukan formulir merupakan bagian penting dalam penanganan formulir. Meskipun Vue.js tidak menyediakan validasi bawaan, Anda dapat menggunakan metode khusus atau pustaka pihak ketiga seperti VeeValidate untuk menangani validasi. Berikut ini adalah contoh dasar tentang cara menerapkan metode validasi sederhana:

<template>
  <form @submit.prevent="validateForm">
    <input v-model="email" placeholder="Enter your email"/>
    <span v-if="!isEmailValid">Invalid email address</span>
    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      email: '',
      isEmailValid: true
    };
  },
  methods: {
    validateForm() {
      const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
      this.isEmailValid = emailPattern.test(this.email);
      if (this.isEmailValid) {
        alert('Form submitted with email: ' + this.email);
      }
    }
  }
};
</script>

Dalam contoh ini, metode validateForm memeriksa apakah alamat email cocok dengan pola ekspresi reguler. Jika email valid, formulir akan dikirimkan; jika tidak, pesan kesalahan akan ditampilkan.

Kesimpulan

Memahami form Vue.js dan input binding sangat penting untuk membangun aplikasi web yang interaktif dan berbasis data. Dengan memanfaatkan perintah v-model dan menangani pengiriman form, Anda dapat mengelola input pengguna dan membuat form yang dinamis secara efisien. Dengan teknik ini, Anda akan siap menangani berbagai tugas terkait form di aplikasi Vue.js Anda.