表单
v-model 指令在表单控件元素上创建双向数据绑定。
<div id=\"app\">
<p>input 元素:</p>
<input v-model=\"message\" placeholder=\"编辑我……\">
<p>消息是: {{ message }}</p>
<p>textarea 元素:</p>
<p style=\"white-space: pre\">{{ message2 }}</p>
<textarea v-model=\"message2\" placeholder=\"多行文本输入……\"></textarea>
</div>
< >
new Vue({
el: \'#app\',
data: {
message: \'Runoob\',
message2: \'菜鸟教程\\r\\nhttp://www.runoob.com\'
}
})
</ >
</body>`
复选框
<body>
<div id=\"app\">
<p>单个复选框:</p>
<input type=\"checkbox\" id=\"checkbox\" v-model=\"checked\">
<label for=\"checkbox\">{{ checked }}</label>
<p>多个复选框:</p>
<input type=\"checkbox\" id=\"runoob\" value=\"Runoob\" v-model=\"checkedNames\">
<label for=\"runoob\">Runoob</label>
<input type=\"checkbox\" id=\"google\" value=\"Google\" v-model=\"checkedNames\">
<label for=\"google\">Google</label>
<input type=\"checkbox\" id=\"taobao\" value=\"Taobao\" v-model=\"checkedNames\">
<label for=\"taobao\">taobao</label>
<br>
<span>选择的值为: {{ checkedNames }}</span>
</div>
< >
new Vue({
el: \'#app\',
data: {
checked : false,
checkedNames: []
}
})
</ >
</body>
单选按钮
<div id=\"app\">
<input type=\"radio\" id=\"runoob\" value=\"Runoob\" v-model=\"picked\">
<label for=\"runoob\">Runoob</label>
<br>
<input type=\"radio\" id=\"google\" value=\"Google\" v-model=\"picked\">
<label for=\"google\">Google</label>
<br>
<span>选中值为: {{ picked }}</span>
</div>
< >
new Vue({
el: \'#app\',
data: {
picked : \'Runoob\'
}
})
</ >
select列表
<div id=\"app\">
<select v-model=\"selected\" name=\"fruit\">
<option value=\"\">选择一个网站</option>
<option value=\"www.runoob.com\">Runoob</option>
<option value=\"www.google.com\">Google</option>
</select>
<div id=\"output\">
选择的网站是: {{selected}}
</div>
</div>
< >
new Vue({
el: \'#app\',
data: {
selected: \'\'
}
})
</ >
修饰符
.lazy
在默认情况下, v-model 在 input 事件中同步输入框的值与数据,但你可以添加一个修饰符 lazy ,从而转变为在 change 事件中同步:
<!-- 在 \"change\" 而不是 \"input\" 事件中更新 -->
<input v-model.lazy=\"msg\" >
.number
如果想自动将用户的输入值转为 Number 类型(如果原值的转换结果为 NaN 则返回原值),可以添加一个修饰符 number 给 v-model 来处理输入值:
<input v-model.number=\"age\" type=\"number\">
这通常很有用,因为在 type=“number” 时 HTML 中输入的值也总是会返回字符串类型。
.trim
如果要自动过滤用户输入的首尾空格,可以添加 trim 修饰符到 v-model 上过滤输入:
<input v-model.trim=\"msg\">
全选与反全选
html
<div id=\"app\">
<p>
全选:
</p>
<input type=\"checkbox\" id=\"checkbox\" v-model=\"checked\" @change=\"changeAllChecked()\">
<label for=\"checkbox\">
{{checked}}
</label>
<p>
多个复选框:
</p>
<input type=\"checkbox\" id=\"runoob\" value=\"Runoob\" v-model=\"checkedNames\">
<label for=\"runoob\">
Runoob
</label>
<input type=\"checkbox\" id=\"google\" value=\"Google\" v-model=\"checkedNames\">
<label for=\"google\">
Google
</label>
<input type=\"checkbox\" id=\"taobao\" value=\"Taobao\" v-model=\"checkedNames\">
<label for=\"taobao\">
taobao
</label>
<br>
<span>
选择的值为:{{checkedNames}}
</span>
</div>
js
new Vue({
el: \'#app\',
data: {
checked: false,
checkedNames: [],
checkedArr: [\"Runoob\", \"Taobao\", \"Google\"]
},
methods: {
changeAllChecked: function() {
if (this.checked) {
this.checkedNames = this.checkedArr
} else {
this.checkedNames = []
}
}
},
watch: {
\"checkedNames\": function() {
if (this.checkedNames.length == this.checkedArr.length) {
this.checked = true
} else {
this.checked = false
}
}
}
})
继续阅读与本文标签相同的文章
下一篇 :
特斯拉公布三季度营收情况,中国市场强势增长
-
你对自己的网站拥有所有权吗?
2026-05-18栏目: 教程
-
你还在用360吗?曾必不可少到现在被人“嫌弃”,只因这1点原因
2026-05-18栏目: 教程
-
Java 12 新特性概述
2026-05-18栏目: 教程
-
Wifi上线!威海市图书馆无线网免费开放
2026-05-18栏目: 教程
-
企业如何选择网络安全防护公司?
2026-05-18栏目: 教程
