1
1
<template >
2
- <Input
3
- label =" Username"
4
- icon =" fa-user"
5
- v-model =" username.value"
6
- :ref =" username.ref"
7
- :is-danger =" !!username.error"
8
- :error-message =" username.error && username.error.message"
9
- />
10
- <Input
11
- label =" Password"
12
- type =" password"
13
- icon =" fa-key"
14
- v-model =" password.value"
15
- :ref =" password.ref"
16
- :is-danger =" !!password.error"
17
- :error-message =" password.error && password.error.message"
18
- />
19
- <Input
20
- label =" Confirm Password"
21
- type =" password"
22
- icon =" fa-key"
23
- v-model =" confirmedPassword.value"
24
- :ref =" confirmedPassword.ref"
25
- :is-danger =" !!confirmedPassword.error"
26
- :error-message =" confirmedPassword.error && confirmedPassword.error.message"
27
- />
28
- <button class =" button is-link" @click =" onSubmit" >Submit</button >
2
+ <h1 class =" title is-1 container" >Vue Hooks Form</h1 >
3
+ <div class =" tile columns" >
4
+ <div class =" column tile " >
5
+ <div class =" tile is-child box" >
6
+ <h2 class =" title" >Example:</h2 >
7
+ <Input
8
+ label =" Username"
9
+ icon =" fa-user"
10
+ v-model =" username.value"
11
+ :ref =" username.ref"
12
+ :is-danger =" !!username.error"
13
+ :error-message =" username.error && username.error.message"
14
+ />
15
+ <Input
16
+ label =" Password"
17
+ type =" password"
18
+ icon =" fa-key"
19
+ v-model =" password.value"
20
+ :ref =" password.ref"
21
+ :is-danger =" !!password.error"
22
+ :error-message =" password.error && password.error.message"
23
+ />
24
+ <Input
25
+ label =" Confirm Password"
26
+ type =" password"
27
+ icon =" fa-key"
28
+ v-model =" confirmedPassword.value"
29
+ :ref =" confirmedPassword.ref"
30
+ :is-danger =" !!confirmedPassword.error"
31
+ :error-message ="
32
+ confirmedPassword.error && confirmedPassword.error.message
33
+ "
34
+ />
35
+ <button class =" button is-link" @click =" onSubmit" >Submit</button >
36
+ </div >
37
+ </div >
38
+ <div class =" column tile" >
39
+ <div class =" tile is-child box" >
40
+ <h2 class =" title" >Values:</h2 >
41
+ <pre >{{ JSON.stringify(values, null, 2) }}</pre >
42
+ </div >
43
+ </div >
44
+ <div class =" column tile" >
45
+ <div class =" tile is-child box" >
46
+ <h2 class =" title" >ErrorFields:</h2 >
47
+ <pre >{{ JSON.stringify(errorFields, null, 2) }}</pre >
48
+ </div >
49
+ </div >
50
+ </div >
29
51
</template >
30
52
31
53
<script lang="ts">
@@ -43,7 +65,11 @@ export default defineComponent({
43
65
},
44
66
setup() {
45
67
const {
46
- useField, validateFields, errorFields, getFieldValues, values,
68
+ useField,
69
+ validateFields,
70
+ errorFields,
71
+ getFieldValues,
72
+ values,
47
73
} = useForm ({
48
74
defaultValues: {
49
75
username: ' Victor' ,
@@ -54,15 +80,19 @@ export default defineComponent({
54
80
})
55
81
const password = useField (' password' , {
56
82
rule: {
57
- required: true , min: 6 , max: 10 ,
83
+ required: true ,
84
+ min: 6 ,
85
+ max: 10 ,
58
86
},
59
87
})
60
88
const confirmedPassword = useField (' confirmedPassword' , {
61
89
rule: {
62
90
required: true ,
63
91
validator(rule , value ) {
64
92
if (! value || value !== (values as any ).password ) {
65
- return new Error (' The two passwords that you entered do not match!' )
93
+ return new Error (
94
+ ' The two passwords that you entered do not match!' ,
95
+ )
66
96
}
67
97
return true
68
98
},
@@ -81,7 +111,14 @@ export default defineComponent({
81
111
}
82
112
},
83
113
errorFields ,
114
+ values ,
84
115
}
85
116
},
86
117
})
87
118
</script >
119
+
120
+ <style scoped>
121
+ h1 {
122
+ text-align : center ;
123
+ }
124
+ </style >
0 commit comments