1. 程式人生 > 其它 >vue 收集表單資料 (有錯誤的請各位大佬指點)

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>