vue 收集表单数据 (有错误的请各位大佬指点)

 收集表单数据:
       若: <input type="text"/>, 则v-model收集 的是value值,用户输入的就是value值。

       若: <input type= "radio"/>,则v-model收 集的是value值,且要给标签配置value值。

    若: <input type=" checkbox"/>
     1.没有配置input的value属性,那么收集的就是checked (勾选or未勾选,是布尔值)
     2.配置input的value属性:

    (1 )v-mode1的初始值是非数组,那么收集的就是checked (勾选or未勾选,是布尔值)
    (2)v-mode1的初始值是数组,那么收集的的就是value组成的数组

    备注: v-mode1的三 个修饰符:
      lazy:失去焦点再收集数据
      number:输入字符串转为有效的数字
       trim:输入首尾空格过滤
<!DOCTYPE html>
<html lang="en">
    <head>
        <!-- Each snowflake is a letter from the sky.
          每片雪花都是天空的一封来信。 -->
        <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>vue收集表单数据</title>
        <!-- 引用vue文件 -->
        <script type="text/javascript" src="../study01/js/vue.js"></script>
        <!-- css  样式 -->
        <style>
        #root{
            margin:0 auto;
            width: 1100px;
            height: 700px;
            border: 1px solid black;
        }
        #root form{
        margin-left: 250px;
          
        }
        h1{
        text-align: center;
        }
        a{
            text-decoration: none;
        }
    </style>
   
    </head>
    <body>
        <!-- 收集表单数据:
       若: <input type="text"/>, 则v-model收集 的是value值,用户输入的就是value值。

       若: <input type= "radio"/>,则v-model收 集的是value值,且要给标签配置value值。

    若: <input type=" checkbox"/>
     1.没有配置input的value属性,那么收集的就是checked (勾选or未勾选,是布尔值)
     2.配置input的value属性:

    (1 )v-mode1的初始值是非数组,那么收集的就是checked (勾选or未勾选,是布尔值)
    (2)v-mode1的初始值是数组,那么收集的的就是value组成的数组

    备注: v-mode1的三 个修饰符: 
      lazy:失去焦点再收集数据
      number:输入字符串转为有效的数字
       trim:输入首尾空格过滤 -->
        <div id="root">
            <h1>杰然学生表册</h1>
            <!-- 表单提交控制台  @submit.prevent="demoput"-->
            <form @submit.prevent="demoput">
                <!-- 交互表单  label -->
                <label for="useName">账号:</label>
                <!-- v-model.trim   trim 去掉前后输入的空格-->
                <input type="text" id="useName" v-model.trim="userInfo.useName"> <br /><br />
                <label for="passName">密码:</label>
                <input type="password" id="passName" v-model="userInfo.passName"> <br /><br/>
                <label for="passName">年龄:</label>
                <!-- v-model 也是有修饰符  年龄防止提交到数据库为字符串报错 去除引号-->
                <input type="number" id="age" v-model.number="userInfo.age"> <br /><br/>
                <!-- 性别单选框 -->
                <label for="checkbox01">性别:</label>
                <label for="man"> 男</label>
                <input type="radio" id="man" name="sex" value="male"
                    v-model="userInfo.sex" />
                <label for="woman">女</label>
                <input type="radio" id="woman" name="sex" value="female"
                    v-model="userInfo.sex" /><br/><br />
                    <!-- 爱好 多选框 -->
                    <span>爱好:</span>
                    <label for="basketball">篮球</label>
                    <input type="checkbox" id="basketball" v-model="userInfo.habby" value="basketball">
                    <label for="football">足球</label>
                    <input type="checkbox" id="football"v-model="userInfo.habby" value="football">
                    <label for="game">打游戏</label>
                    <input type="checkbox" id="game"v-model="userInfo.habby" value="game"><br/><br />
                        <!-- 校区  下拉框 -->
                        <span>所属校区:</span>
                        <select v-model="userInfo.city">
                            <option value="">请选择校区</option>
                            <option value="yunnan">云南</option>
                            <option value="zhaotong">昭通</option>
                            <option value="lijiang">丽江</option>
                            <option value="wenshan">文山</option>
                            <option value="chengjiang">澄江</option>
                        </select><br/><br />
                            <!-- 更多信息   多行文本框 -->
                            <span>更多信息</span>
                            <!--  v-model.lazy  修饰符  在失去焦点的一瞬间才收集 -->
                            <textarea cols="30" rows="10" v-model.lazy="userInfo.other"></textarea><br/><br />
                            <input type="checkbox" v-model="userInfo.sgree"> 我也阅读和接收
                            <a href="www.baidu.com">《用户协议》</a><br/><br />
                            <button>提交数据</button>
                </form>
           </div>
        <script type="text/javascript">
            Vue.config.productionTip=false;//阻止运行时提示开发版本
              new Vue({
                el:"#root",
                data:{
                    //  userInfo 管理用户信息
                userInfo:{
                useName:'',
                passName:'',
                age,
                sex:'male',
                habby:[], // habby 初始值可以影响v-moddel的初始值  复选框可以写成数组形式[]
                city:"",
                other:'',
                sgree:''
                }
                },
                methods:{
                    demoput(){
                        // 提交表单信息到控制台 userInfo直接换成_data也可以
                        console.log(JSON.stringify(this.userInfo))
                    }
                },
                })  
        </script>
    </body>                                                            
  </html>

  

posted @ 2021-11-22 11:41  And杰然  阅读(72)  评论(0编辑  收藏  举报