-
Notifications
You must be signed in to change notification settings - Fork 0
/
vue-form-bind.html
135 lines (135 loc) · 3.83 KB
/
vue-form-bind.html
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">
<div id="example1">
<input v-model="message" placeholder="edit me" />
<p>Message is: {{message}}</p>
</div>
<hr />
<div id="example2">
<span>Multiline message is</span>
<p style="white-space: pre-line">{{message_mul}}</p>
<br />
<textarea
v-model="message_mul"
placeholder="add multiple lines"
></textarea>
</div>
<hr />
<div id="example3">
<input type="checkbox" id="checkbox" v-model="checked" />
<label for="checkbox">{{ checked }}</label>
</div>
<hr />
<div id="example4">
<input type="checkbox" id="jack" value="Jack" v-model="checkedNames" />
<label for="jack">Jack</label>
<input type="checkbox" id="john" value="John" v-model="checkedNames" />
<label for="john">John</label>
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames" />
<label for="mike">Mike</label>
<br />
<span>Checked names: {{ checkedNames }}</span>
</div>
<hr />
<div id="example5">
<input type="radio" id="one" value="One" v-model="picked" />
<label for="one">One</label>
<br />
<input type="radio" id="two" value="Two" v-model="picked" />
<label for="two">Two</label>
<br />
<span>Picked: {{ picked }}</span>
</div>
<hr />
<div id="example6">
<select v-model="selected">
<option disabled value="">请选择</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<span>Selected: {{selected}}</span>
</div>
<hr />
<div id="example7">
<select multiple style="width: 50px" v-model="selected_mul">
<option disabled value="">请选择</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<span>Selected: {{selected_mul}}</span>
</div>
<div id="example8">
<select multiple style="width: 50px" v-model="selected_mul2">
<option v-for="option in options" :value="option.value">
{{option.text}}
</option>
</select>
<span>Selected: {{selected_mul2}}</span>
</div>
<div id="example9">
<input type="radio" v-model="self_picked" value="a" />
<p>{{self_picked}}</p>
<input
type="checkbox"
v-model="self_toggle"
true-value="yes"
false-value="no"
/>
<p>{{self_toggle}}</p>
</div>
<div id="example10">
<input v-model.lazy="lazy_message" />
<p>{{lazy_message}}</p>
</div>
</div>
<script>
// lazy 修饰符是在 onchange 事件后进行赋值,而不是在 onInput 事件之后
const data = {
message: "",
lazy_message: "",
message_mul: "",
checked: false,
checkedNames: [],
self_picked: "",
self_toggle: false,
picked: "",
selected: "",
selected_mul: [],
selected_mul2: [],
options: [
{
text: "One",
value: "A",
},
{
text: "Two",
value: "B",
},
{
text: "Three",
value: "C",
},
],
};
const vm = new Vue({
el: "#app",
data,
watch: {},
computed: {},
methods: {},
mounted: function () {},
});
</script>
</body>
</html>