Vue验证码60秒倒计时功能简单实例代码
程序员文章站
2022-07-06 14:28:20
template
template
<template> <div class='login'> <div class="loginheader"> <input type="tel" class="loginbtn border-bottom" placeholder="请输入手机号" /> <input type="tel" class="codebtn" placeholder="请输入验证码" /> <input type="button" class="getnumber" v-model="codemsg" @click="getcode" :disabled="codedisabled" /> </div> </div> </template>
script
<script> export default { data() { return { // 是否禁用按钮 codedisabled: false, // 倒计时秒数 countdown: 60, // 按钮上的文字 codemsg: '获取验证码', // 定时器 timer: null } }, methods: { // 获取验证码 getcode() { // 验证码60秒倒计时 if (!this.timer) { this.timer = setinterval(() => { if (this.countdown > 0 && this.countdown <= 60) { this.countdown--; if (this.countdown !== 0) { this.codemsg = "重新发送(" + this.countdown + ")"; } else { clearinterval(this.timer); this.codemsg = "获取验证码"; this.countdown = 60; this.timer = null; this.codedisabled = false; } } }, 1000) } } } } </script>
css(scss写法)
<style> .login{ width: 100%; height: 100%; background: #f9f9f9; .loginheader{ padding: 0 10px; background: #fff; margin-top: 20px; overflow: hidden; .loginbtn{ width: 100%; height: 42px; border: none; background: #fff; color: #444; border-radius: 4px; outline: none; padding-left: 3px; font-size: 1.4rem; box-sizing: border-box; -webkit-appearance:none; } .border-bottom{ border-bottom: 1px solid #f3f3f3; } .codebtn{ width: 63%; height: 42px; border: none; background: #fff; color: #444; border-radius: 4px; float: left; outline: none; padding-left: 3px; font-size: 1.4rem; box-sizing: border-box; -webkit-appearance:none; } .getnumber{ width: 35%; height: 36px; float: right; margin-top: 3px; border: 1px solid #09bb07; color: #09bb07; background: #fff; border-radius: 4px; outline: none; -webkit-appearance:none; } } } </style>
总结
以上所述是小编给大家介绍的vue验证码60秒倒计时功能简单实例代码,希望对大家有所帮助