JQuery - 获取验证码倒计时 60 秒功能示例源码,普通 html + jq 项目下实现手机号与验证码登录(完整代码及注释,适用于手机号 + 验证码登录的系统)

前言

网上的示例代码都很乱,改起来很麻烦。

本文 实现了 jquery 手机号验证码倒计时 60 秒功能,干净整洁的 “基础示例”,只完成了核心功能,

您可以直接复制源码(JQuery CDN 已经引入了),并且可以与任何 UI 框架(例如 Bootstrap、Layui 等)搭配。


如下图所示,自己加点样式就能使用了。

在这里插入图片描述

示例源码

推荐使用平台提供的一键复制,避免漏选。

新建一个 *.html 文件,直接运行起来就行了。

<!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>JQuery 手机号+验证码倒计时功能</title>

    <!-- JQuery CDN(失效自行更换引入) -->
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
</head>
<body>

<!-- 视图 -->
<input id="reg_phone" placeholder="请输入手机号" />
<input id="reg_mescode" placeholder="请输入验证码" />
<button id="reg_mescode_btn" able="able">获取验证码</button>
<!-- END -->


<script>
// 获取短信验证码(需要自行加入额外验证及调用接口逻辑)
var mesdong=null;
var mestime=60;
$("#reg_mescode_btn").click(function(){
      
      
    if($(this).attr('able')=="able") {
      
      
        // 1. 校验数据(比如手机号是否填写)
        var name = $('#reg_phone').val();
        if(name == '') {
      
      
            alert('请输入手机号!')
            //一定要返回return,才能让下面的"2"代码不执行
            return false;
        }

        // 2. 通过验证,执行倒计时60秒
        $(this).attr('able',"disable");
        $(this).css('cursor','not-allowed');
        $(this).html(mestime+"秒后重发");
        mesdong = setInterval(function() {
      
      
            mestime-=1;
            if(mestime<0){
      
      
                $("#reg_mescode_btn").attr('able',"able");
                $("#reg_mescode_btn").css('cursor','pointer');
                $("#reg_mescode_btn").html('获取验证码');
                mestime=60;
                clearInterval(mesdong);
            }else{
      
      
                $("#reg_mescode_btn").html(mestime+"秒后重发");			
            };
        }, 1000);

        // 3. Ajax请求接口
        // ...
    }
})
</script>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_44198965/article/details/130643146