<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>收集表单数据</title>
</head>
<body>
<div id="root">
<form @submit.prevent="submit">
账号:<input type="text" v-model="account">
<br>
<br>
密码:<input type="password" v-model="password">
<br>
<br>
性别:男 <input type="radio" name="sex" value="male" v-model="sex">
女 <input type="radio" name="sex" value="female" v-model="sex">
<br>
<br>
爱好:学习<input type="checkbox" value="study" v-model="hobby">
睡觉<input type="checkbox" value="sleep" v-model="hobby">
吃饭<input type="checkbox" value="eat" v-model="hobby">
<br>
<br>
所属校区
<select v-model="city">
<option value="">请选择校区</option>
<option value="0">北京</option>
<option value="1">上海</option>
<option value="2">深圳</option>
</select>
<br>
<br>
其他信息
<textarea v-model="other"></textarea>
<br>
<br>
<input type="checkbox" v-model="agree">阅读并接受<a href="https://www.jianshu.com/p/8b28580d98a4">《用户协议》</a>
<br>
<br>
<button>提交</button>
</form>
</div>
<script src="../js/vue.js"></script>
<script type="text/javascript">
Vue.config.productionTip = false;
new Vue({
el:'#root',
data:{
account:'',
password:'',
sex:'',
hobby:[],
city:'',
other:'',
agree:''
},
methods: {
submit(){
console.log(this._data);
}
},
})
</script>
</body>
</html>
知识点:
1:借助label的for和input的id配合可以实现,点击文字,input框就获取焦点。
2:将button的type值设置为button,可以阻止点击按钮,页面刷新。
3:也可以使用阻止表单的默认事件来阻止页面的刷新。
4:收集表单数据
- 若:<input type="text"/>,则v-model收集的是value值,用户输入的就是value值。
- 若:<input type="radio"/>,则v-model收集的是value值,需要给标签配置value。
- 若:<input type="checkbox"/>
(1):没有配置input的value属性,则收集的就是checked(勾选或未勾选,是布尔值)。
(2):配置了input的value属性
①若v-model的初始值是数组,则收集的就是value组成的数组。
②若v-model的初始值非数组,那么收集的依旧是checked。
5:v-model的三个修饰符:
① number:将输入的字符串转为有效数字
②trim:过滤首尾空格
③lazy:失去焦点再收集数据
网友评论