使用Vue收集表单数据

秒速五厘米 2024-04-07 12:53 173阅读 0赞

收集表单数据:

,则v-model收集的是value的值,用户输入的就是value

,则v-model收集的是value的值,且要给标签配置value

1.没有配置input的value属性,那么手机的就是checked(勾选true or 未勾选false)

2.v-model的初始值是数组,那么收集的就是value组成的数组

备注:v-model的三个修饰符

lazy:失去焦点再收集数据

number:输入字符串转为有效数字

trim:输入首尾空格过滤

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title> 初识vue</title>
  6. <!--引入vue 引入之后,全局就多了一个vue这个构造函数-->
  7. <script type="text/javascript" src="../js/vue.js"></script>
  8. </head>
  9. <body>
  10. <!-- 提前说明 v-model是手机value值 -->
  11. <div id="root">
  12. <!-- 只要表单提交,我们就调用demo方法 -->
  13. <form @submit="demo">
  14. <!-- for="demo" 就是为id为demo的服务 -->
  15. <!-- 这个label的目的,就是将“账号”和下面那个input框联系在一起,当我们点击“账号”时,我们的input框也能获取到焦点 -->
  16. <label for="demo">账号:</label>
  17. <!--v-model.trim去掉前后的空格 -->
  18. <input type="text" id="demo" v-model.trim="userInfo.account">
  19. <br/><br/>
  20. 密码:<input type="password" v-model="userInfo.password">
  21. <br/><br/>
  22. <!-- type="number"控制用户输入的不能是字母子类的 -->
  23. <!-- v-model.number 控制传入到Vue中的是数字,而不是字符串 -->
  24. 年龄:<input type="number" v-model.number="userInfo.age">
  25. <br/><br/>
  26. 性别:
  27. <input type="radio" name="sex" value="male" v-model="userInfo.sex" >
  28. <input type="radio" name="sex" value="female" v-model="userInfo.sex">
  29. <br/><br/>
  30. <!-- 多选框:v-model、value值不能少 其中hobby一定要是数组的方式,不能是字符串的形式 -->
  31. 爱好:
  32. 学习<input type="checkbox" v-model="userInfo.hobby" value="study">
  33. 打游戏<input type="checkbox" v-model="userInfo.hobby" value="game">
  34. 吃饭<input type="checkbox" v-model="userInfo.hobby" value="eat">
  35. <br/><br/>
  36. 所属校区
  37. <select v-model="userInfo.city">
  38. <!-- selected="selected"默认选择 -->
  39. <option value="" selected="selected">请选择校区</option>
  40. <option value="beijing" >北京</option>
  41. <option value="shanghai">上海</option>
  42. <option value="shenzhen">深圳</option>
  43. <option value="wuhan">武汉</option>
  44. </select>
  45. <br/><br/>
  46. <!-- 这个地方也要双向绑定 -->
  47. 其他信息:
  48. <!-- v-model.lazy不会实时收集我们在框内打的每一个字,当这个框失去焦点后才会收集框内的信息 -->
  49. <textarea v-model.lazy="userInfo.other"></textarea>
  50. <br/><br/>
  51. <!--这个地方的checkbox已经和刚刚的不一样了 -->
  52. <input type="checkbox" v-model="userInfo.agree"> 阅读并接受<a href="https://www.baidu.com">《用户协议》</a>
  53. <br/><br/>
  54. <button > 提交</button>
  55. </form>
  56. </div>
  57. </body>
  58. <script type="text/javascript">
  59. Vue.config.productionTip=false
  60. new Vue({
  61. el:'#root',
  62. data:{
  63. userInfo:{
  64. account:'',
  65. password:'',
  66. // 性别默认女
  67. sex:'female',
  68. // 这个地方的hobby不可以这个样子,否则收到的就是true或者false 而不是value
  69. // hobby:''
  70. hobby:[],
  71. city:'',
  72. other:'',
  73. agree:'',
  74. age:''
  75. }
  76. },
  77. methods: {
  78. demo(){
  79. console.log(JSON.stringify(this.userInfo))
  80. }
  81. },
  82. })
  83. </script>
  84. </html>

发表评论

表情:
评论列表 (有 0 条评论,173人围观)

还没有评论,来说两句吧...

相关阅读