ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue里面收集表单数据v-model

2021-09-19 17:32:14  阅读:190  来源: 互联网

标签:Vue 收集 value 表单 勾选 userInfo input model


跟着视频学Vue,记录一些笔记~

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue.js"></script>
</head>

<body>
    <div id="root">
        <!-- @submit.prevent阻止form表单的默认提交 -->
        <form @submit.prevent="demo">
            <!-- label标签的for选项可以使用户名和输入框联系起来 -->
            <label for="account">用户名:</label>
            <!-- v-model.trim表示去掉用户名前后的空格 -->
            <input type="text" v-model.trim="userInfo.account" id="account">
            <br><br>
            密码:<input type="password" v-model="userInfo.password">
            <br><br>
            <!-- 年龄type="number"只准输入数字 v-model.number表示输入的数据类型为number类型 -->
            年龄:<input type="number" v-model.number="userInfo.age">
            <br><br>
            性别:<input type="radio" name="sex" value="male" v-model="userInfo.sex">男
            <input type="radio" name="sex" value="female" v-model="userInfo.sex">女
            <br><br>
            爱好:
            <input type="checkbox" value="study" v-model="userInfo.hobby">学习
            <input type="checkbox" value="eat" v-model="userInfo.hobby">吃饭
            <input type="checkbox" value="play" v-model="userInfo.hobby">玩耍
            <br><br>
            校区:
            <select v-model="userInfo.city">
                <option value="">请选择校区</option>
                <option value="beijing">北京</option>
                <option value="shanghai">上海</option>
                <option value="wuhan">武汉</option>
                <option value="shenzhen">深圳</option>
            </select>
            <br><br>
            其他信息:
            <!-- v-model.lazy表示不是实时收集,而是失去焦点的时候收集数据 -->
            <textarea v-model.lazy="userInfo.other"></textarea><br><br>
            <input type="checkbox" v-model="userInfo.agree">阅读并接受<a href="http://atguigu.com">《用户协议》</a>
            <button>提交</button>
        </form>
    </div>
    <script>
        new Vue({
            el: '#root',
            data: {
                userInfo: {
                    account: '',
                    password: '',
                    age: 18,
                    sex: '',
                    hobby: [], //多选框用数组搜集
                    city: 'beijing',
                    other: '',
                    agree: ''
                }
            },
            methods: {
                demo() {
                    // console.log(JSON.stringify(this._data)) //一般不直接获取_data属性,所以可以在外面包裹一层userInfo
                    console.log(JSON.stringify(this.userInfo))
                },
            },
        });

    </script>
</body>

</html>

收集表单数据:

1、若:input类型为text, <input type="text" >,则v-model收集的是value值,用户输入的就是value值。

2、若:input类型为radio,<input type="radio" name="sex" value="male" v-model="userInfo.sex">,则v-model收集的是value值,且要手动配置value值。

3、若:input类型为checkbox,<input type="checkbox" value="study" v-model="userInfo.hobby">

(1)没有配置input的value属性,那么收集的就是checked(勾选或者未勾选,是布尔值)

(2)配置了input的value属性:

a、v-model的初始值不是数组,那么收集的就是checked(勾选或者未勾选,是布尔值)

b、v-model的初始值是数组,那么收集的就是value值组成的数组(多选常用)

4、textarea多行文本输入,v-model收集的是输入的值,与lazy修饰符一同使用

备注:v-model的三个修饰符:

lazy:失去焦点再收集数据;

number:输入字符串转为数字类型

trim:去掉输入首尾空格

标签:Vue,收集,value,表单,勾选,userInfo,input,model
来源: https://blog.csdn.net/qq_43320218/article/details/120382370

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有