layui框架实战案例(10):短信验证码60秒倒计时

layui封装库

    <!--layui封装库-->
    <script src="js/layui/layui.js" charset="utf-8"></script>
    <link rel="stylesheet" href="js/layui/css/layui.css">

构建表单

<div style="margin-top: 10px;">
    <form class="layui-form">
        <div class="layui-form-item">
            <label class="layui-form-label">手机号码</label>
            <div class="layui-input-inline"><input type="text" name="mobile" id="mobile" lay-verify="mobile" autocomplete="off" class="layui-input"></div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">验证码</label>
            <div class="layui-input-inline"><input type="text" name="smscode" id="smscode" lay-verify="smscode" autocomplete="off" class="layui-input" disabled="disabled"></div>
            <div class="layui-input-inline">
                <input type="button" class="layui-btn layui-btn-primary" id="btnSendCode" disabled="disabled" value="获取验证码">
            </div>
        </div>
    </form>
</div>

layui调用

   /*layui调用*/
    layui.use(['layer', 'form'], function () {
        $ = layui.jquery;
        var form = layui.form, layer = layui.layer;

        //自定义验证规则
        form.verify({
            mobile: [/^1[3|4|5|7|8]\d{9}$/, '手机必须11位,只能是数字。']
        });

    });

    $(function () {
        var wait = 60;

        function time(o) {
            if (wait == 0) {
                o.removeAttribute("disabled");
                o.value = "获取验证码";
                wait = 60;
            } else {
                o.setAttribute("disabled", true);
                o.value = "重新发送(" + wait + ")";
                wait--;
                setTimeout(function () {
                    time(o);
                }, 1000);
            }
        }

        $("#mobile").change(function () {
            var mobile = $.trim($("#mobile").val());
            if (mobile.length == 11) {
                $("#smscode").attr("disabled", false).css({"background-color": "#fff"});
                $("#btnSendCode").attr("disabled", false).removeClass("layui-btn layui-btn-primary").addClass("layui-btn layui-btn-normal");

                document.getElementById("btnSendCode").onclick = function () {
                    if (wait != 60) {
                        console.log("请" + wait + "秒后再试!");
                        return;
                    }
                    if (mobile == '') {
                        console.log("请填写手机号码");
                        return;
                    }
                    $("#smscode").val("");

                    time(this);

                    $.getJSON("smsbao.php", {act: 'sms_reg', mobile: mobile}, function (res) {
                        if (res.err == '0') {
                            console.log("发送失败," + res.err, 4000);
                            return;
                        } else {
                            $("#smscode").val(res.code);
                            console.log("验证码已发送,5分钟内有效");
                            return;
                        }
                    });
                }
            } else {
                $("#smscode").attr("disabled", true);
                $("#btnSendCode").attr("disabled", false).removeClass("layui-btn layui-btn-primary").addClass("layui-btn layui-btn-normal");
            }
        });
    })

@lockdata.cn

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏刻有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值