DemoFormLayoutFormValidation.vue
1.72 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<script lang="ts" setup>
import type { VForm } from 'vuetify/components/VForm'
const name = ref('')
const email = ref('')
const items = ['Item 1', 'Item 2', 'Item 3', 'Item 4'] as const
const select = ref<typeof items[number]>()
const checkbox = ref(false)
const form = ref<VForm>()
</script>
<template>
<VForm
ref="form"
lazy-validation
>
<VRow>
<VCol cols="12">
<VTextField
v-model="name"
:rules="[requiredValidator]"
label="Name"
placeholder="John Doe"
required
/>
</VCol>
<VCol cols="12">
<VTextField
v-model="email"
:rules="[emailValidator, requiredValidator]"
label="E-mail"
placeholder="johndoe@email.com"
required
/>
</VCol>
<VCol cols="12">
<VSelect
v-model="select"
:items="items"
:rules="[requiredValidator]"
placeholder="Select an Item"
label="Item"
name="select"
require
/>
</VCol>
<VCol cols="12">
<VCheckbox
v-model="checkbox"
:rules="[requiredValidator]"
label="Do you agree?"
required
/>
</VCol>
<VCol
cols="12"
class="d-flex flex-wrap gap-4"
>
<VBtn
color="success"
@click="form?.validate()"
>
Validate
</VBtn>
<VBtn
color="error"
@click="form?.reset()"
>
Reset Form
</VBtn>
<VBtn
color="warning"
@click="form?.resetValidation()"
>
Reset Validation
</VBtn>
</VCol>
</VRow>
</VForm>
</template>