vue3获取验证码并设置倒计时

<div class="input-group mb-3 px-5">
      <span class="input-group-text">验证码</span>
      <input
        type="text"
        v-model="user.password"
        class="form-control"
        aria-label="Amount (to the nearest dollar)"
        required
      />
      <button
        type="button"
        @click="getCode"
        :disabled="isDisposed"
        class="btn btn-primary"
      >
        {{ isDisposed ? `${time}s后重新获取` : "获取验证码" }}
      </button>
    </div>

获取验证码方法:

const getCode = () => {
      if (openTitle.value) {
        alert("请输入正确的手机号");
        return;
      }
      const { username } = user.value;
      console.log("获取验证码", username);
      axios
        .get("auth/register/getverify", { params: { username } })
        .then((res) => {
          console.log("获取验证码结果", res);
          if (res.data.errcode == 0) {
            console.log("验证码发送成功!");
            isDisposed.value = true;
            handleTimeChange();
          } else alert(res.data.msg);
        });
    };

倒计时:

const handleTimeChange = () => {
      if (time.value <= 0) {
        isDisposed.value = false;
        time.value = 60;
      } else {
        setTimeout(() => {
          time.value--;
          handleTimeChange();
        }, 1000);
      }
    };

    const time = ref(60);
    const isDisposed = ref(false);
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值