2018-7-18 表单输入绑定、组件基础
目标:
熟练掌握vue中表单的处理方式
对之前学习的内容简单回顾一下,并写一个实例,学以致用(最好脱离文档)
vue中表单的处理方式vue中表单的处理使用了v-model指令, 这个指令可以直接把一个数据绑定到表单元素中的value,checked,selected特性,同时这些特性也会被忽略掉初始值,而总是将vue实例的数据作为数据来源.
使用了v-model之后html <textarea></textarea>之间的插值就不会有效了,会被v-model代替.
双向绑定(v-model)1.绑定value: text,textarea(字符串)
text:
textarea:
<textarea v-model="message" placeholder="add multiple lines"></textarea>2.绑定checked: checkout(单个绑定布尔值,多个绑定字符串数组), radio(字符串)
checkout(单个):
checkout(多个):
html <input type="checkbox" value="Jack" v-model="checkedNames"> <label for="jack">Jack</label> <input type="checkbox" value="John" v-model="checkedNames"> <label for="john">John</label> <input type="checkbox" value="Mike" v-model="checkedNames"> <label for="mike">Mike</label> `` radio: html
```
3.绑定selected: select(字符串)
<select v-model="selected"> <option disabled value="">请选择</option> <option>A</option> <option>B</option> <option>C</option> </select> 修饰符(用在v-model指令上).lazy: 触发的事件不一样,使用change触发,而不是input触发
.number: 自动转为数字类型
.trim:自动过滤后卫空白符号
form.html
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>表单输入绑定</title> <script src="http://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script> </head> <body> <div> <form> <!-- 文本 --> <input type="text" v-model="formData.textValue">{{formData.textValue}}<br> <textarea v-model="formData.textareaValue"></textarea>{{formData.textareaValue}}<br> <!-- checkout(单个) --> <input type="checkbox" v-model="formData.isChecked"><label for="checkbox">点我啊</label><br> <!-- 多个多选 --> <input type="checkbox" value="haha" v-model="formData.checkedValues"> <label for="haha">哈哈</label> <input type="checkbox" value="hoho" v-model="formData.checkedValues"> <label for="hoho">呵呵</label> <input type="checkbox" value="hihi" v-model="formData.checkedValues"> <label for="hihi">嘻嘻</label> <br> 多选选中的是<span v-for="value of formData.checkedValues"> {{value}} </span> <br> <!-- 单选 --> <input type="radio" value="one" v-model="formData.pickedValue"> <label for="one">one</label> <input type="radio" value="two" v-model="formData.pickedValue"> <label for="two">two</label> <input type="radio" value="three" v-model="formData.pickedValue"> <label for="three">three</label> <br> 单选选中的是<span> {{formData.pickedValue}} </span> <br> <!-- 下拉选择框 --> <select v-model="formData.selectedValue"> <option disabled value="">请选择</option> <option>A</option> <option>B</option> <option>C</option> </select> <br> 下拉选择框选中的是<span> {{formData.selectedValue}} </span> <br> <a @click="submitForm">提交</a> </form> </div> </div> <script> var vm = new Vue({ el: '#app', data: { formData: { textValue: '', textareaValue: '', isChecked: true, checkedValues: [], pickedValue:'', selectedValue: '' }, msg: '这是一句消息' }, methods: { submitForm: function(){ for(var key in this.formData) { obj[key] = this.formData[key]; } console.log(this.formData); console.log(this.msg); } } }); </script> </body> </html>