什么是表单?
就是和input标签以及textarea标签相关的东西
如何利用vue为表单填充数据?
利用v-model
<div id="app">
<p>input 元素:</p>
<input v-model="message" >
<p>textarea 元素:</p>
<textarea v-model="message2"></textarea>
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Runoob',
message2: '菜鸟教程\r\nhttp://www.runoob.com'
}
})
</script>
就这么简单
v-model="message" 中的message就对应着data里面的相应信息。随便你起什么名字,不一定要用message,对应上就行。就是说v-model后面的值必须和data里面对应。
如果input类型为单选框
如下,可以通过v-model来设置其值为true或者false。当然一般的value属性这里就不用了。v-model替代了value属性。
v-model 会忽略所有表单元素的 value、checked、selected 特性的初始值。
之后再实例里可以设置checked为true或者false。
<div id="app">
<p>单个复选框:</p>
<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>
</div>
<script>
new Vue({
el: '#app',
data: {
checked : false,
}
})
</script>
结果
或者
这个取决于data中checked的布尔值。
如果input类型为多选框如下
checkedNames这几个字是内建的,不能随便变。
<div id="app">
<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>
<script>
new Vue({
el: '#app',
data: {
checkedNames: []
}
})
</script>
结果选择相应的多选框就会输出相应的项目名字。 checkedNames: []后面的中括号必须有(原因?也许因为是个数组?)