8.表单处理.html 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>Document</title>
  8. <script src="../../vue.js"></script>
  9. </head>
  10. <body>
  11. <div id="app">
  12. <!-- 实现注册功能 -->
  13. <!-- v-model 可以实现 数据 与 表单输入域 的 双向绑定 -->
  14. <form @submit.prevent="onSubmit">
  15. <div class="form-item">
  16. <label
  17. >账号:<input
  18. type="text"
  19. placeholder="请输入账号..."
  20. v-model="formModel.account"
  21. required
  22. /></label>
  23. </div>
  24. <div class="form-item">
  25. <!-- :value="formModel.password"
  26. @input="formModel.password=$event.target.value" -->
  27. <label
  28. >密码:<input
  29. type="password"
  30. placeholder="请输入密码..."
  31. v-model="formModel.password"
  32. required
  33. /></label>
  34. </div>
  35. <div class="form-item">
  36. <label
  37. >确认:<input
  38. type="password"
  39. placeholder="请再次输入密码..."
  40. v-model="formModel.repasswd"
  41. required
  42. /></label>
  43. </div>
  44. <div class="form-item">
  45. <label
  46. >性别:
  47. <select v-model="formModel.sex">
  48. <option value="">请选择性别...</option>
  49. <option value="男">男</option>
  50. <option value="女">女</option>
  51. </select>
  52. </label>
  53. </div>
  54. <div class="form-item">
  55. <label
  56. >爱好:
  57. <input type="checkbox" value="篮球" v-model="formModel.hobby" />篮球
  58. <input type="checkbox" value="足球" v-model="formModel.hobby" />足球
  59. <input type="checkbox" value="乒乓" v-model="formModel.hobby" />乒乓
  60. </label>
  61. </div>
  62. <div class="form-item">
  63. <button>注册</button>
  64. </div>
  65. </form>
  66. </div>
  67. <script>
  68. var vm = new Vue({
  69. data: {
  70. // 表单的数据模型
  71. formModel: {
  72. account: '',
  73. password: '',
  74. repasswd: '',
  75. sex: '',
  76. hobby: [],
  77. },
  78. // ...
  79. },
  80. methods: {
  81. onSubmit(ev) {
  82. // ev.preventDefault(); // 阻止表单的默认提交行为
  83. // 上面代码 可以通过 事件的prevent修饰符来完成
  84. let { account, password, repasswd } = this.formModel;
  85. // 如果用户两次录入的密码一致,就将账号和密码 打印到 控制台上
  86. if (password === repasswd) {
  87. console.log(`您注册的账号:${account},密码:${password}`);
  88. } else {
  89. alert('两次密码不一致');
  90. }
  91. },
  92. },
  93. }).$mount('#app');
  94. </script>
  95. </body>
  96. </html>