vue实现简单表单收集

vue实现简单表单收集

实现

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src=" https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <title>表单</title>
    </head>
    <body>
      <!--收集表单数据
        1、如果<input type="text"> v-model收集的是value值
        2、如果<input type="radio"> v-model收集的是value值,但要自己配置value
        3、如果<input type="checkbox">
          如果没有配置value,收集的是checked
          如果value初始值是数组收集的是value,若非数组,收集是的checked
        4、v-model的三个修饰符:
          lazy:失去焦点再收集数据
          number:收集的字符转为数字
          trim:去除首尾空格
        5、prevent修饰可以去除默认行为,比如submit的默认行为为跳转
       -->
      <div id="app">
        <form @submit.prevent="info">
          账号: <input type="text" v-model.trim="userInfo.account"><br>
          密码: <input type="password" v-model="userInfo.password"><br>
          年龄:<input type="number" v-model.number="userInfo.age"><br>
          性别:
          男<input type="radio" name="sex" v-model="userInfo.sex" value="男">
          女<input type="radio" name="sex" v-model="userInfo.sex" value="女"><br>
          爱好:
          学习<input type="checkbox" v-model="userInfo.hobby" value="study">
          打游戏<input type="checkbox" v-model="userInfo.hobby" value="game">
          吃饭<input type="checkbox" v-model="userInfo.hobby" value="eat"><br>
          请选择校区:
          <select v-model="userInfo.city">
            <option value="">请选择校区</option>
            <option value="beijing">北京校区</option>
            <option value="wuhan">武汉校区</option>
            <option value="shanghai">上海校区</option>
          </select><br>
          其他信息:<textarea v-model.lazy="userInfo.other"></textarea><br>
          <input type="checkbox" v-model="userInfo.agree">阅读并同意用户协议
          <button type="submit">提交</button>
        </form>
      </div>

      <script>
        new Vue({
          el:'#app',//与模板绑定
          data() {
            return {
              userInfo:{
                account:'',
                password:'',
                age:18,
                sex:'女',
                hobby:[],
                city:'beijing',
                other:'',
                agree:'',
              }
            }
          },
          computed:{
          },
          methods: {
            info(){
              console.log(this.userInfo);
            }
          },
        })
      </script>
  </body>
</html>
posted @ 2023-08-21 17:22  奚罗罗  阅读(14)  评论(0编辑  收藏  举报