文章目录
- v-model的三个修饰符
- 收集文本框
- 收集单选按钮
- 收集复选框
- 收集下拉列表
- 收集文本域
- 演示程序
Vue学习目录
上一篇:(十三)Vue之监测数据改变的原理
v-model的三个修饰符
v-model的三个修饰符:
- lazy:失去焦点再收集数据
- number:输入字符串转为有效的数字
- trim:输入首尾空格过滤
收集文本框
若收集的是文本框数据,则v-model收集的是value值,用户输入的就是value值,并且这个value是字符串形式的,如果想收集数字形式可以使用修饰符number。
收集单选按钮
若收集的是单选按钮,则v-model收集的是value值,且要给标签配置value值。
收集复选框
若收集的是复选框,有两种情况:
- 1.没有配置input的value属性,那么收集的就是checked(勾选 or 未勾选,是布尔值)
- 2.配置input的value属性:
- (1)v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)
- (2)v-model的初始值是数组,那么收集的就是value组成的数组
收集下拉列表
若收集的是下拉列表,那么v-model收集的是value值,用户选择哪个选项,就是哪个选项的value值。
收集文本域
若收集的是文本域,那么v-model收集的是value值,用户输入的就是value值。
演示程序
<div id="root">
<form @submit.prevent="demo">
账号:<input type="text" v-model.trim="userInfo.accout"><br><br>
密码:<input type="password" v-model="userInfo.password"><br><br>
年龄:<input type="number" v-model.number="userInfo.age"> <br/><br/>
性别:
男<input type="radio" name="sex" value="male" v-model="userInfo.sex">
女<input type="radio" name="sex" value="female" v-model="userInfo.sex"><br><br>
爱好:
抽烟<input type="checkbox" v-model="userInfo.hoddy" value="smoking">
喝酒<input type="checkbox" v-model="userInfo.hoddy" value="drink">
烫头<input type="checkbox" v-model="userInfo.hoddy" value="head"><br><br>
所属校区
<select v-model="userInfo.city">
<option value="">请选择校区</option>
<option value="beijing">北京</option>
<option value="guangzhou">广州</option>
<option value="shenzhen">深圳</option>
</select><br><br>
其他信息:
<textarea v-model.lazy="userInfo.other"></textarea><br>
<input type="checkbox" v-model="userInfo.agree"/>阅读并接受<a href="http://www.baidu.com">《用户协议》<br><br>
<button>提交</button>
<!--<input type="submit" value="提交" >-->
</form>
</div>
<script type="text/javascript">
Vue.config.productionTip = false//阻止 vue 在启动时生成生产提示。
new Vue({
el:'#root',
data:{
userInfo:{//一般会把收集的数据整理成一个json对象。
accout:'',
password:'',
age:'',
sex:'',
hoddy:[],
city:'',
other:'',
agree:''
}
},
methods:{
demo() {
/*
stringify从一个json对象中解析出字符串,返回值是字符串
parse是从一个json类型的字符串中解析出json对象
*/
console.log(JSON.stringify(this.userInfo))
}
}
});
</script>
效果: