解决Vue按钮点击多次,数据重复提交问题

方法一:

<template>

    <div class="blogboard">

        <h3>添加博客</h3>

        <form class="bodys" v-if="!blog.submmit">

            <label class="titles">标题</label>

            <input class="inputs" v-model="blog.title">

            <label  class="titles">内容</label>

            <textarea v-model="blog.content"></textarea>

            <label  class="titles">分类</label>

            <div class="tablein">

            <input type="checkbox" v-model="blog.belong" value="蔡小葵">蔡小葵

            <input type="checkbox" v-model="blog.belong" value="yyqx">yyqx

            </div>

            <button  @click="postblog()" :disabled="blog.isDisable"  >

            <!--postblog()是方法名,   blog.isDisable 是变量名,     :disabled 表示被禁用 ,blog.isDisable=true是禁用状态,blog.isDisable=false 是解除禁用  -->

                提交

            </button>

         

        </form>

        <h4>博客总览</h4>

        <p>标题:{{blog.title}}</p>

        <p>内容:{{blog.content}}</p>

        <p>分类:{{blog.belong}}</p>

    </div>

</template>

<script>

  

export default {

  

    data(){

        return{

            blog:{

                title:'',

                content:'',

                belong:[],

                isDisable:false,  //blog.isDisable变量的初始值

            }

        }

    },

    methods:{

        postblog(){

            this.blog.isDisable = true,

             setTimeout(() => {

             this.isDisable = false

             }, 10000)

            this.$http.post("http://jsonplaceholder.typicode.com/posts",

            {

                title:this.blog.title,

                body:this.blog.content,

                userId:this.blog.belong,

 

            }

            ).then(function(data){

                console.log(data);

            }

            );

         

        }

    },

}

</script>

 

 

 

 

方法二:

通过自定义指令

全局指令使用Vue.directive()方法,

// 注册一个全局自定义指令`v-postblog`

Vue.directive('postblog', {

// 当被绑定的元素插入到 DOM 中时……

inserted: function (el) {

// 聚焦元素

el.postblog()

}

})

 

 

 

局部指令使用directives

 

directives: {

postblog: {

// 指令的定义

inserted: function (el) {

el.postblog() }

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值