Two-way binding và Form Submission trong VueJS 2
Khi phát triển các ứng dụng web phức tạp, việc xử lý form và submission là một phần quan trọng. Trong bài tập nâng cao này, mình sẽ kết hợp Two-way binding với Form Submission trong VueJS 2 để tạo ra một trải nghiệm tương tác và hiệu quả hơn khi người dùng điền thông tin vào một form.
Two-way Binding và Form Submission trong VueJS 2
Mình sẽ sử dụng directive v-model
để liên kết dữ liệu của form với các biến trong Vue instance và sử dụng sự kiện @submit
để xử lý việc submit và gửi dữ liệu.
File index.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue Two-way Binding và Form Submission</title> <!-- Thêm đoạn CSS --> <style> body { font-family: 'Arial', sans-serif; display: flex; align-items: center; justify-content: center; height: 100vh; margin: 0; background-color: #f4f4f4; } #app { text-align: center; background-color: #fff; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } input { width: 200px; padding: 10px; margin-bottom: 10px; border: 1px solid #ccc; border-radius: 3px; } button { padding: 10px 20px; background-color: #4caf50; color: #fff; border: none; border-radius: 3px; cursor: pointer; } </style> </head> <body> <div id="app"> <h1>Two-way Binding và Form Submission trong VueJS 2 (Nâng Cao)</h1> <form @submit.prevent="submitForm"> <label for="name">Tên:</label> <input type="text" id="name" v-model="formData.name" required> <br> <label for="email">Email:</label> <input type="email" id="email" v-model="formData.email" required> <br> <button type="submit">Submit</button> </form> <p>Thông tin được submit: {{ submittedData }}</p> </div> <!-- VueJS --> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <!-- Main JavaScript file --> <script src="main.js"></script> </body> </html>
Giải thích:
- Một form đơn giản với hai trường
input
cho Tên (name) và Email (email). - Sử dụng
v-model
để liên kết giá trị của input với các biến tương ứng trongformData
trong Vue instance. - Sự kiện được sử dụng để ngăn chặn hành động mặc định của form và thay thế nó bằng phương thức
submitForm
. - Một đoạn mã HTML để hiển thị thông tin đã được
submit
, được bind với biếnsubmittedData
trong Vue instance.
File main.js:
// Tạo một Vue instance var app = new Vue({ el: '#app', data: { formData: { name: '', email: '' }, submittedData: '' }, methods: { submitForm: function() { // Phương thức này sẽ được gọi khi form được submit // Xử lý dữ liệu và hiển thị thông báo this.submittedData = `Tên: ${this.formData.name}, Email: ${this.formData.email}`; } } });
Giải thích:
Vue Instance:
- Tạo một Vue instance và liên kết nó với phần tử có id là app trong HTML.
Data:
formData:
Một đối tượng chứa các thuộc tính name và email để lưu trữ giá trị của các trường input.submittedData
: Một biến để lưu trữ thông tin đã được submit.
Methods:
submitForm
: Phương thức được gọi khi form được submit.- Gán giá trị của
formData.name
vàformData.email
vàosubmittedData
để hiển thị thông tin đã được submit.
Bài tập Two-way Binding và Form Submission trong VueJS 2 đã mở ra khả năng tạo ra các form tương tác và hiệu quả. VueJS không chỉ giúp quản lý trạng thái ứng dụng một cách thuận lợi mà còn là một công cụ mạnh mẽ trong việc xử lý form và gửi dữ liệu. Áp dụng những kiến thức này vào các dự án của bạn để tạo ra trải nghiệm người dùng đáng nhớ và chất lượng.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Two-way binding với v-model trong VueJS 2
- Two-way binding với Checkbox trong VueJS 2
- Two-way binding với Dropdown trong VueJS 2
- Two-way binding với Textarea trong VueJS 2
- Two-way binding với Radio Buttons trong VueJS 2
- Two-way binding với Number Input trong VueJS 2
- Two-way binding và xử lý sự kiện trong VueJS 2
- Two-way binding và Form Submission trong VueJS 2
- Two-way binding và sự kiện Change trong VueJS 2