发送验证码

此HTML和JavaScript代码示例展示了如何在点击发送按钮后禁用按钮并开始60秒倒计时。在倒计时期间,用户无法点击提交按钮,只有当倒计时结束且输入正确的验证码(0505)时,才会弹窗提示成功。

内容
1.发送按钮点击后,会被禁用;
2.被点击后,按钮里面的内容会变化成1分钟的倒计时;
3.待发送按钮被触发后才可以点击提交按钮,需在验证码框里填写0505,用弹窗提示成功。
原理
倒计时实现60秒倒数
(注:“眼睛”显示密码为浏览器自带!!)
代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
	<style>
	*{
        margin: 0;
        padding: 0;
    }
	</style>
</head>
<body>
    <div>
        验证码:
        <input type="password" class="password">
        <button class="send">发送</button>
        <input type="submit" class="get">
    </div> 
    <script>
        var passWord = document.querySelector('.password')
        var osend = document.querySelector('button')
        var oget = document.querySelector('.get')
        var time = 60;
        oget.disabled = true

        osend.addEventListener('click', function(){
            osend.disabled = true
            var oTime = setInterval(function(){
                if(time == 0){
                    clearInterval(oTime)
                    osend.disabled = false
                    osend.innerHTML = '发送'
                }else{
                    osend.innerHTML = '等待' + time + '秒'
                    time--
                    oget.disabled = true
                }
            }, 1000)
        })

        oget.addEventListener('click', function() {
            if(passWord.value=='0505'){
                alert("成功")
            }else{
                alert("错误")
            }
        })
    </script>
</body>
</html>

效果
在这里插入图片描述

Spring Boot和Vue实现发送验证码功能有不同类型的验证码,以下是常见的邮箱验证码和图形验证码的实现方法: ### 邮箱验证码 在Spring Boot后端,需要创建一个控制器类来处理发送验证码和注册逻辑。示例代码如下: ```java @RestController @RequestMapping("/reg") public class RegisterController { @Autowired Emails emails; @PostMapping("get-code") public V getCode(@RequestBody User user) { if (StringUtils.isEmpty(user.getEmail())) { return V.err("邮箱为空"); } if (!emails.isValidEmail(user.getEmail())) { return V.err("邮箱格式错误"); } // 发送邮箱验证码 String code = emails.send(user); // 验证码 存入缓存 emails.putCache(user.getEmail(), code); System.out.println("用户获取邮箱验证码 : " + user.getEmail() + " , code:" + code); return V.ok(); } @PostMapping("register") public V register(@RequestBody User user) { if (StringUtils.isEmpty(user.getEmail()) || !emails.isValidEmail(user.getEmail()) || StringUtils.isEmpty(user.getCode())) { return V.err("参数错误"); } // 从缓存中判断验证码 if (!emails.getCache(user.getEmail()).equals(user.getCode().trim())) { return V.err("邮箱验证码错误"); } System.out.println("验证码验证成功,开始注册"); // 下面为验证码正确 // 进行你的注册逻辑 return V.ok(); } } ``` 在上述代码中,`getCode`方法用于发送邮箱验证码并将其存入缓存,`register`方法用于验证邮箱验证码并进行注册逻辑[^2]。 ### 图形验证码 在Vue前端的login页面,需要添加输入框和显示验证码图片的元素,并实现点击图片刷新验证码的功能。示例代码如下: ```vue <el-form-item prop="name"> <div style="display: flex;justify-content: center;margin: 20px 0"> <el-input size="medium" style="width: 160px;margin-top: 20px" placeholder="请输入图形验证码" prefix-icon="el-icon-user" v-model="user.verCode"></el-input> <img :src="captchaUtl" @click="clickImg" width="160px" height="60px" style="margin-left: 10px" /> </div> </el-form-item> <script> export default { data() { return { user: {}, key: '', captchaUtl: '' }; }, methods: { clickImg() { this.key = Math.random(); this.captchaUtl = 'http://localhost:9090/captcha?key=' + this.key; } } }; </script> ``` 在上述代码中,通过点击图片调用`clickImg`方法,生成新的随机数并更新验证码图片的URL[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值