1. 程式人生 > 其它 >Vue 表單資料收集

Vue 表單資料收集

文字框

示例:

賬號:<input type="text" v-model.trmi="userInfo.account">

密碼:<input type="password" v-model="userInfo.password">

簽名:<textarea v-model.lazy="userInfo.other"></textarea>

年齡:<input type="number" v-model.number="userInfo.age">

v-model.trmi:過濾掉內容左右兩邊的的空格,但內容中的空格沒法過濾

v-model.lazy

:失去焦點再收集資料

v-model.number:輸入字串轉為有效的數字



單選框

示例

性別:

男<input type="radio" v-model="userInfo.sex" name="sex" value="男">

女<input type="radio" v-model="userInfo.sex" name="sex" value="女">

同一型別的單選框需要設定同一個 name 如:name="sex"

需要為每一個單選框設定 value 值才能收集到資料


<input type="checkbox" v-model="userInfo.agree">閱讀並接受<a href="#">《使用者協議》</a>

這裡未設定 value 值,收集 checked(勾選 or 未勾選,是布林值)



多選框與下拉框

多選框示例

愛好:

吃飯<input type="checkbox" v-model="userInfo.hobby" value="吃飯">

睡覺<input type="checkbox" v-model="userInfo.hobby" value="睡覺">

喝水<input type="checkbox" v-model="userInfo.hobby" value="喝水">

下拉框示例

<select v-model="userInfo.city">
    <option value="">請選擇地區</option>
    <option value="北京">北京</option>
    <option value="上海">上海</option>
    <option value="深圳">深圳</option>
    <option value="廣州">廣州</option>
</select>

需要每一項設定 value 值



例項

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>收集表單資料</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>

<div id="root">
    <form @submit.prevent="demo">
        賬號:<input type="text" v-model.trmi="userInfo.account">
        <br><br>
        密碼:<input type="password" v-model="userInfo.password">
        <br><br>
        性別:
        男<input type="radio" v-model="userInfo.sex" name="sex" value="男">
        女<input type="radio" v-model="userInfo.sex" name="sex" value="女">
        <br><br>
        年齡:<input type="number" v-model.number="userInfo.age">
        <br><br>
        愛好:
        吃飯<input type="checkbox" v-model="userInfo.hobby" value="吃飯">
        睡覺<input type="checkbox" v-model="userInfo.hobby" value="睡覺">
        喝水<input type="checkbox" v-model="userInfo.hobby" value="喝水">
        <br><br>
        所在地區:
        <select v-model="userInfo.city">
            <option value="">請選擇地區</option>
            <option value="北京">北京</option>
            <option value="上海">上海</option>
            <option value="深圳">深圳</option>
            <option value="廣州">廣州</option>
        </select>
        <br><br>
        簽名:
        <textarea v-model.lazy="userInfo.other"></textarea>
        <br><br>
        <input type="checkbox" v-model="userInfo.agree">閱讀並接受<a href="#">《使用者協議》</a>
        <br><br>
        <button>提交</button>
    </form>
</div>
</body>

<script>
    new Vue({
        el: "#root",
        data: {
            userInfo: {
                account: '',
                password: '',
                sex: 'male',
                age: '',
                hobby: [],
                city: '',
                other: '',
                agree: false
            }
        },
        methods: {
            demo() {
                alert('提交成功')
                console.log(JSON.stringify((this.userInfo)))
            }
        }
    })
</script>
</html>