@roma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<template> <form @submit.prevent="submitForm"> <!-- input fields --> </form> </template> <script> export default { methods: { submitForm() { // handle form submission }, }, }; </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<template> <form @submit.prevent="submitForm"> <input v-model="name" placeholder="Name" /> <input v-model="email" placeholder="Email" /> <button>Submit</button> </form> </template> <script> export default { data() { return { name: '', email: '', }; }, methods: { submitForm() { console.log(this.name, this.email); // handle form submission }, }, }; </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<template> <form @submit.prevent="submitForm"> <input v-model="name" placeholder="Name" required /> <input v-model="email" placeholder="Email" type="email" required /> <button>Submit</button> </form> </template> <script> export default { data() { return { name: '', email: '', }; }, methods: { submitForm() { console.log(this.name, this.email); // handle form submission }, }, }; </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<template> <div> <form @submit.prevent="submitForm('form1')"> <input v-model="form1.name" placeholder="Name" required /> <input v-model="form1.email" placeholder="Email" type="email" required /> <button>Submit</button> </form> <form @submit.prevent="submitForm('form2')"> <input v-model="form2.username" placeholder="Username" required /> <input v-model="form2.password" placeholder="Password" type="password" required /> <button>Submit</button> </form> </div> </template> <script> export default { data() { return { form1: { name: '', email: '', }, form2: { username: '', password: '', }, }; }, methods: { submitForm(formName) { console.log(this[formName]); // handle form submission }, }, }; </script> |
@roma
В приведенных примерах показано, как работать с формами в Vue.js. Компонент формы содержит элемент <form>
, который использует директиву @submit.prevent
для предотвращения действия по умолчанию при отправке формы. В методе submitForm()
пока просто выводится в консоль значения полей формы.
Во втором примере добавлены свойства данных name
и email
, которые связаны с полями ввода через директиву v-model
, что позволяет автоматически обновлять данные в компоненте в соответствии с введенным пользователем текстом.
В третьем примере реализована простая валидация ввода с помощью нативных HTML атрибутов, таких как required
и type
. При отправке формы с пустыми обязательными полями браузер не даст выполнить отправку, что обеспечивает базовую защиту от отправки некорректных данных.
Наконец, в четвертом примере добавлены две отдельные формы на одной странице. Каждая форма имеет свое собственное состояние данных, что позволяет обрабатывать их независимо друг от друга. Метод submitForm()
теперь принимает параметр formName
, чтобы понимать, с какой формой мы работаем.
Эти примеры демонстрируют базовые принципы работы с формами в Vue.js, включая связывание данных, обработку событий и валидацию ввода.