vue 短信验证码倒计时

发布于 2022-09-06 01:26:13 字数 994 浏览 11 评论 0

clipboard.png

<template>
<div>
    <group title="验证码">
        <x-input title="发送验证码" placeholder="请输入验证码">
            <x-button slot="right" type="primary" action-type="button" mini>发送验证码</x-button>
        </x-input>
    </group>
</div>
</template>

<script>
import { Confirm,XInput, Group, XSwitch, XButton, TransferDomDirective as TransferDom } from 'vux';
import Vue from 'vue';
import  { ConfirmPlugin } from 'vux';
Vue.use(ConfirmPlugin);

export default {
    directives: {
        TransferDom
    },
    components: {
        Confirm,
        Group,
        XSwitch,
        XButton,
        XInput
    },
    data () {
        return {
        }
    },
    methods: {
    }
}
</script>

问题:获取手机验证码60秒倒计时,不能点击按钮;60秒后重新获取按钮

老铁们,帮忙看看>_<

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

热鲨 2022-09-13 01:26:13

这跟jquery的也没区别啊……
button加个事件:

<x-button slot="right" type="primary" action-type="button" mini @click="sendMessage">{{word}}</x-button>

加两个属性:

data(){
    return {
       word: '发送验证码',
       isOvertime: false
    }
},
methods: {
    sendMessage(){
        if(this.isOvertime){
            return false;
        }
        let that = this,
            time = 60;
        var sendTimer = setInterval(function(){
            that.isOvertime = true;
            time--;
            that.word = "重新发送"+time;
            if(time < 0){
                that.isOvertime = false;
                clearInterval(sendTimer);
                that.word = "获取验证码";
            }
        },1000)
    }
}
野生奥特曼 2022-09-13 01:26:13

倒计时和按钮分成两个dom在同一个位置 用v-if用区分一下

心清如水 2022-09-13 01:26:13

你可以在点击事件里加一个标志位
@click='once%%handleclick()'

点击时this.once=false;

倒计时结束后 this.once=true

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文