JS 60秒后重发送验证码

本文介绍了一个简单的HTML页面,该页面使用JavaScript实现了一个倒计时按钮功能。当按钮被点击后,将开始60秒倒计时,在此期间按钮无法再次被点击,并显示剩余的重新发送时间。
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<button id="getPhoneCode"></button>
	<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
	<script>
		function settime($obj,time){
			if(time==0){
				$obj.attr("disabled",false);
				$obj.css("background","#f38401").css("cursor","pointer");
				$obj.text("获取手机验证码");
				return;
			}else{
				$obj.attr("disabled",true);
				$obj.css("background","#ccc").css("cursor","noe-allowed");
				$obj.text("重新发送("+time+")");
				time--;
			}
			setTimeout(function(){settime($obj,time)},1000);
		}
		settime($("#getPhoneCode"),60);
	</script>
</body>
</html>

在 Ant Design Vue 中实现发送验证码成功后 60 后才能发送的 UI 设计方案,可按以下步骤进行。 ### 思路 1. **按钮状态控制**:发送验证码前,按钮处于可点击状态;发送后,设置为不可点击状态,并开始倒计时。 2. **倒计时实现**:使用 JavaScript 的 `setInterval` 函数实现 60 倒计时。 3. **UI 显示**:在倒计时过程中,按钮文本显示剩余时间;倒计时结束后,按钮恢复可点击状态,文本恢复为初始状态。 ### 代码示例 ```vue <template> <a-button :disabled="isDisabled" @click="sendCode"> {{ buttonText }} </a-button> </template> <script> export default { data() { return { isDisabled: false, buttonText: '发送验证码', countdown: 0 }; }, methods: { sendCode() { // 模拟发送验证码请求 // 这里可以添加实际的发送验证码的 API 请求 this.isDisabled = true; this.countdown = 60; this.buttonText = `${this.countdown} 发送`; const timer = setInterval(() => { this.countdown--; this.buttonText = `${this.countdown} 发送`; if (this.countdown === 0) { clearInterval(timer); this.isDisabled = false; this.buttonText = '发送验证码'; } }, 1000); } } }; </script> ``` ### 代码解释 - **`isDisabled`**:控制按钮的禁用状态,初始值为 `false`,表示按钮可点击。 - **`buttonText`**:显示按钮的文本内容,初始值为 `'发送验证码'`。 - **`countdown`**:记录倒计时的剩余时间,初始值为 0。 - **`sendCode` 方法**:模拟发送验证码的请求,将按钮设置为禁用状态,开始 60 倒计时,并更新按钮文本。 - **`setInterval` 函数**:每更新一次倒计时和按钮文本,当倒计时结束时,清除定时器,恢复按钮的可点击状态和文本。 ### 注意事项 - 实际应用中,需要将模拟的发送验证码请求替换为真实的 API 请求。 - 可以根据需求对按钮的样式进行调整,例如添加不同的颜色、大小等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值