(十五)Vue之收集表单数据

Vue学习目录

上一篇:(十四)Vue之监测数据改变的原理

下一篇:(十六)Vue之过滤器

v-model的三个修饰符

v-model的三个修饰符:

  • lazy:失去焦点再收集数据
  • number:输入字符串转为有效的数字
  • trim:输入首尾空格过滤

收集文本框

若收集的是文本框数据,则v-model收集的是value值,用户输入的就是value值,并且这个value是字符串形式的,如果想收集数字形式可以使用修饰符number。

收集单选按钮

若收集的是单选按钮,则v-model收集的是value值,且要给标签配置value值。

收集复选框

若收集的是复选框,有两种情况:

  • 1.没有配置input的value属性,那么收集的就是checked(勾选 or 未勾选,是布尔值)
  • 2.配置input的value属性:
    • (1)v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)
    • (2)v-model的初始值是数组,那么收集的就是value组成的数组

收集下拉列表

若收集的是下拉列表,那么v-model收集的是value值,用户选择哪个选项,就是哪个选项的value值。

收集文本域

若收集的是文本域,那么v-model收集的是value值,用户输入的就是value值。

演示程序

<div id="root">
        <form @submit.prevent="demo">
            账号:<input type="text" v-model.trim="userInfo.accout"><br><br>
            密码:<input type="password" v-model="userInfo.password"><br><br>
            年龄:<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" v-model="userInfo.hoddy" value="smoking">
            喝酒<input type="checkbox" v-model="userInfo.hoddy" value="drink">
            烫头<input type="checkbox" v-model="userInfo.hoddy" value="head"><br><br>
            所属校区
            <select v-model="userInfo.city">
                <option value="">请选择校区</option>
                <option value="beijing">北京</option>
                <option value="guangzhou">广州</option>
                <option value="shenzhen">深圳</option>
            </select><br><br>
            其他信息:
            <textarea v-model.lazy="userInfo.other"></textarea><br>
            <input type="checkbox" v-model="userInfo.agree"/>阅读并接受<a href="http://www.baidu.com">《用户协议》<br><br>
            <button>提交</button>
            <!--<input type="submit" value="提交" >-->
        </form>
    </div>
    <script type="text/javascript">
        Vue.config.productionTip = false//阻止 vue 在启动时生成生产提示。
        new Vue({
            el:'#root',
            data:{
                userInfo:{//一般会把收集的数据整理成一个json对象。
                    accout:'',
                    password:'',
                    age:'',
                    sex:'',
                    hoddy:[],
                    city:'',
                    other:'',
                    agree:''
                }
            },
            methods:{
                demo() {
                    /*
                        stringify从一个json对象中解析出字符串,返回值是字符串
                        parse是从一个json类型的字符串中解析出json对象
                     */
                    console.log(JSON.stringify(this.userInfo))
                }
            }
        });
    </script>

效果:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆亦何为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值