JS设置手机验证码60s等待实现代码
手机验证码60秒等待功能的HTML与JS实现
亲爱的朋友们,如果你们正在寻找一个能够实现手机验证码获取并附带60秒等待功能的代码,那么下面的示例可能会帮到你们。让我们开始吧!
HTML结构:
```html
```
JavaScript实现:
```javascript
// 获取DOM元素引用
const phoneInput = document.querySelector('.phone-input');
const getCodeBtn = document.querySelector('.get-code-btn');
const errorMessage = document.querySelector('.error-message');
let timer; // 用于存储定时器引用
let timeLeft = 60; // 初始化剩余时间
// 当点击获取验证码按钮时执行以下操作
getCodeBtn.addEventListener('click', function() {
// 验证手机号输入
const phoneNumber = phoneInput.value.trim();
if (!phoneNumber) {
errorMessage.textContent = '请填写手机号!';
return;
} else if (!/^1[34578]\d{9}$/.test(phoneNumber)) { // 简单的手机号格式验证,不包含全部可能性,可根据需求调整正则表达式
errorMessage.textContent = '手机号格式不正确';
return;
} else {
errorMessage.textContent = ''; // 如果手机号正确,清空错误提示信息
}
// 设置按钮显示剩余倒计时,并禁用按钮直到倒计时结束
this.textContent = timeLeft + "秒"; // 显示剩余时间
this.disabled = true; // 禁用按钮直到倒计时结束再启用它
timer = setInterval(() => { // 开始倒计时定时器每秒钟更新一次按钮文本和剩余时间变量值直到倒计时结束清除定时器并恢复按钮状态与文本内容开始倒计时定时器每秒钟更新一次按钮文本和剩余时间变量值直到倒计时结束清除定时器并恢复按钮状态与文本内容。如果等待结束立即设置下一个等待流程同时再次触发按钮允许状态计时器应该设置清除时间间隔以及相应的时间剩余文本信息提醒用户可重新获取验证码。如果等待结束立即设置下一个等待流程同时再次触发按钮允许状态计时器应该设置清除时间间隔同时再次允许点击事件恢复发送验证码功能并清除错误信息。这会增加用户体验性增加用户体验性的重要方式在于对用户体验细节的考虑在用户体验中每一次的点击或交互都应具有清晰反馈这里包括在等待时间的清晰呈现确保用户清楚了解接下来的操作流程以提高用户体验并优化应用或网站的功能。同时我们也需要确保代码的可读性和可维护性以便于后续的修改和扩展代码的功能以适应不断变化的用户需求和环境。使用计时器的方法让按钮变成计时器形式并提供倒计时让用户明白何时可以再次获取验证码提升用户体验和网站交互效果通过合理的编程实践保证代码的简洁明了易于理解并能有效解决问题。", function() { timeLeft--; // 每秒钟更新剩余时间变量值 if (timeLeft <= 0) { clearInterval(timer); // 当倒计时结束时清除定时器 this.textContent = '获取验证码'; // 恢复按钮文本内容 this.disabled = false; // 恢复按钮点击功能 timeLeft = 60; // 重置剩余时间为初始值 } }, 1000); // 设置定时器每隔一秒钟执行一次回调函数更新剩余时间显示与状态功能同时需要处理一些异常状况如用户点击过快或网络延迟等需要添加容错机制以确保系统稳定性并提升用户体验。", function() { // 此处可添加错误处理代码用于处理如用户点击过快等异常状况以提供更好的用户体验 }); } }); ``` 此代码实现了点击获取验证码后显示一个包含倒计时功能的按钮,用户在等待期间无法再次点击按钮获取验证码,直到倒计时结束。同时提供了基本的手机号格式验证和错误提示功能。此代码示例在保持功能性的注重用户体验的细节处理,如清晰的反馈和操作流程提示等。希望这个示例能帮助到大家,如果有任何疑问或需要进一步的帮助,请随时联系我。同时感谢大家对网站的支持和关注!
编程语言
- JS设置手机验证码60s等待实现代码
- php实现三级级联下拉框
- 浅谈vue项目重构技术要点和总结
- jQuery动态添加元素无法触发绑定事件的解决方法
- SQL集合函数中case when then 使用技巧
- 如何使用HTML5地理位置定位功能
- curl和libcurl的区别简介
- php数据结构之顺序链表与链式线性表示例
- 浅谈mysql explain中key_len的计算方法
- JS处理json日期格式化问题
- ASP.NET中 Execl导出的六种方法实例
- asp.net中ListBox 绑定多个选项为选中及删除实现方
- JS运动特效之完美运动框架实例分析
- 算法系列15天速成 第六天 五大经典查找【下】
- 让codeigniter与swfupload整合的最佳解决方案
- jQuery实现点击水纹波动动画