Vue学习日记(10)收集表单数据、过滤器

该博客展示了如何在Vue.js中处理表单数据,包括使用v-model.trim过滤输入的空格,v-model.number转换数字类型,以及通过v-model收集复选框和单选按钮的选择。此外,还介绍了全局和局部过滤器的创建与使用,如ftime过滤器用于日期格式化,并展示了过滤器串联和传参的用法。
摘要由CSDN通过智能技术生成

收集表单数据

在这里插入图片描述

<div id="root">
        <form @submit.prevent="demo">
            <!-- .trim 过滤掉空格 -->
            帐号:<input type="text"  v-model.trim="account"><br><br>
            密码:<input type="password"  v-model="password"><br><br>
            <!-- .number 转换数字类型 -->
            年龄:<input type="number"  v-model.number="age"><br><br>
            性别:
            男:<input type="radio"  v-model="sex" value="male">
            女:<input type="radio"  v-model="sex" value="female"><br><br>
            爱好:
            抽烟<input type="checkbox"  v-model="hobby" value="cy">
            喝酒<input type="checkbox"  v-model="hobby" value="hj">
            烫头<input type="checkbox"  v-model="hobby" value="tt"><br><br>
            所属校区:
            <select  v-model="city">
                <option value="">请选择校区</option>
                <option value="beijing">北京</option>
                <option value="shanghai">上海</option>
                <option value="shenzhen">深圳</option>
                <option value="dalian">大连</option>
            </select><br><br>
            其他信息:
            <!-- .azy 失去焦点后才收集 -->
            <textarea v-model.zay="other"></textarea><br><br>
            <input type="checkbox" v-model="agree" >
            阅读并接受<a href="http://163.com">《用户协议》</a><br><br>
            <button>提交</button>

        </form>
        
    </div>

    <script>
        Vue.config.productionTip = false
        const vm = new Vue({
            el:'#root',
            data:{
                account:'',
                password:'',
                age:'',
                sex:'female',
                hobby:[],
                city:'dalian',
                other:'',
                agree:''
            },
            methods: {
                demo(){
                    console.log(JSON.stringify(this._data))
                }
            },
        })
    </script>

过滤器

在这里插入图片描述

<div id="root">
        <h2>显示格式化后的时间</h2>
        <h3>现在的时间:{{time}}</h3>
        <!-- 计算属性实现 -->
        <h3>格式化后的时间:{{fmtime}}</h3>
        <!-- methods实现 -->
        <h3>格式化后时间:{{getfmtime()}}</h3>
        <!-- 过滤器实现(传参) -->
        <h3>现在是:{{time|ftime("YYYY-MM")}}</h3>
        <!-- 过滤器串联 -->
        <h3>现在是:{{time|ftime|fstime}}</h3>
        <!-- 过滤器(传参)+串联 -->
        <h3>现在是:{{time|ftime("YYYY-MM")|fstime}}</h3>

    </div>


    <script>
        Vue.config.productionTip = false
        // 全局过滤器
        Vue.filter('fstime',function(val){
            return val.slice(0,4)
        })

        const vm = new Vue({
            el:'#root',
            data:{
                time:1638426826585
            },
            computed:{
                fmtime(){
                    // dayjs() 不传值,则返回当前时间戳的格式化内容
                    return  dayjs().format('YYYY年MM月DD日 HH:mm:ss')
                }
            },
            methods: {
                getfmtime(){
                    return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')
                }
            },
            // 局部过滤器
            filters:{
                ftime(val,s='YYYY年MM月DD日'){
                    return dayjs(val).format(s)
                }
               
            }
        })
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值