Skip to content

Commit 1761311

Browse files
Move forms bindings to Vue 3 syntax (#35)
* feat: added form bindings up to radiobuttons * feat: added radio and select * feat: add modifiers * fix: added missed comma
1 parent 3ea77e9 commit 1761311

File tree

10 files changed

+441
-0
lines changed

10 files changed

+441
-0
lines changed

src/.vuepress/components/forms-1.vue

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<template>
2+
<div id="example-1" class="demo">
3+
<input v-model="message" placeholder="edit me" />
4+
<p>Message is: {{ message }}</p>
5+
</div>
6+
</template>
7+
8+
<script>
9+
export default {
10+
data() {
11+
return {
12+
message: ''
13+
}
14+
}
15+
}
16+
</script>

src/.vuepress/components/forms-2.vue

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<template>
2+
<div id="example-textarea" class="demo">
3+
<span>Multiline message is:</span>
4+
<p style="white-space: pre-line;">{{ message }}</p>
5+
<br />
6+
<textarea v-model="message" placeholder="add multiple lines"></textarea>
7+
</div>
8+
</template>
9+
10+
<script>
11+
export default {
12+
data() {
13+
return {
14+
message: ''
15+
}
16+
}
17+
}
18+
</script>

src/.vuepress/components/forms-3.vue

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<template>
2+
<div id="example-2" class="demo">
3+
<input type="checkbox" id="checkbox" v-model="checked" />
4+
<label for="checkbox">{{ checked }}</label>
5+
</div>
6+
</template>
7+
8+
<script>
9+
export default {
10+
data() {
11+
return {
12+
checked: false
13+
}
14+
}
15+
}
16+
</script>

src/.vuepress/components/forms-4.vue

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<template>
2+
<div id="example-3" class="demo">
3+
<input type="checkbox" id="jack" value="Jack" v-model="checkedNames" />
4+
<label for="jack">Jack</label>
5+
<input type="checkbox" id="john" value="John" v-model="checkedNames" />
6+
<label for="john">John</label>
7+
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames" />
8+
<label for="mike">Mike</label>
9+
<br />
10+
<span>Checked names: {{ checkedNames }}</span>
11+
</div>
12+
</template>
13+
14+
<script>
15+
export default {
16+
data() {
17+
return {
18+
checkedNames: []
19+
}
20+
}
21+
}
22+
</script>

src/.vuepress/components/forms-5.vue

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<div id="example-4" class="demo">
3+
<input type="radio" id="one" value="One" v-model="picked" />
4+
<label for="one">One</label>
5+
<br />
6+
<input type="radio" id="two" value="Two" v-model="picked" />
7+
<label for="two">Two</label>
8+
<br />
9+
<span>Picked: {{ picked }}</span>
10+
</div>
11+
</template>
12+
13+
<script>
14+
export default {
15+
data() {
16+
return {
17+
picked: ''
18+
}
19+
}
20+
}
21+
</script>

src/.vuepress/components/forms-6.vue

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<div id="example-5" class="demo">
3+
<select v-model="selected">
4+
<option disabled value="">Please select one</option>
5+
<option>A</option>
6+
<option>B</option>
7+
<option>C</option>
8+
</select>
9+
<span>Selected: {{ selected }}</span>
10+
</div>
11+
</template>
12+
13+
<script>
14+
export default {
15+
data() {
16+
return {
17+
selected: ''
18+
}
19+
}
20+
}
21+
</script>

src/.vuepress/components/forms-7.vue

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<div id="example-6" class="demo">
3+
<select v-model="selected" multiple style="width: 50px;">
4+
<option>A</option>
5+
<option>B</option>
6+
<option>C</option>
7+
</select>
8+
<br />
9+
<span>Selected: {{ selected }}</span>
10+
</div>
11+
</template>
12+
13+
<script>
14+
export default {
15+
data() {
16+
return {
17+
selected: []
18+
}
19+
}
20+
}
21+
</script>

src/.vuepress/components/forms-8.vue

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<template>
2+
<div id="example-7" class="demo">
3+
<select v-model="selected">
4+
<option v-for="option in options" v-bind:value="option.value">
5+
{{ option.text }}
6+
</option>
7+
</select>
8+
<span>Selected: {{ selected }}</span>
9+
</div>
10+
</template>
11+
12+
<script>
13+
export default {
14+
data() {
15+
return {
16+
selected: 'A',
17+
options: [
18+
{ text: 'One', value: 'A' },
19+
{ text: 'Two', value: 'B' },
20+
{ text: 'Three', value: 'C' }
21+
]
22+
}
23+
}
24+
}
25+
</script>

src/.vuepress/config.js

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ module.exports = {
3939
'conditional',
4040
'list',
4141
'events',
42+
'forms'
4243
]
4344
}
4445
]

0 commit comments

Comments
 (0)