手机发送验证码

 

1 需求

发送短信以后,再次发送短信按钮变得不可用,倒计时60秒以后才可以使用

2 步骤

创建按钮倒计时的方法:function countDown(count),在发送短信请求以后调用

  1. 发送短信按钮不可用

  2. 每过1秒调用1次匿名函数

  3. 匿名函数中计数减1

  4. 按钮上的文字变为:x秒后可再次发送验证码

  5. 如果计数变为0

  6. 按钮变得可用

  7. 文本变成:发送手机验证码

  8. 清除计时器

3 代码

//发送短信的按钮
$("#sendSmsCode").click(function () {
    //获取手机号
    let telephone = $("#telephone").val().trim();
    //验证手机格式
    let reg = /^1[35789]\d{9}$/;
    if (reg.test(telephone)) {
        //清空
        $("#telephoneInfo").text("");

        //验证通过,后台访问服务器
        $.get({
            url:"user",
            data: {
                action: "sendSms",
                telephone: telephone
            },
            success: function (resultInfo) {
                //发送成功
                if (resultInfo.success) {
                    $("#msg").css("color", "green").text(resultInfo.message);
                }
                //发送失败
                else {
                    $("#msg").css("color", "red").text(resultInfo.message);
                }
            }
        });
        //调用倒计时
        countDown(10);
    }
    else {
        //验证不通过
        $("#telephoneInfo").css("color", "red").text("手机号格式错误");
        //选中手机号
        $("#telephone").select();
    }
});

/**
 * 倒计时
 * @param count 秒数
 */
function countDown(count) {
   //1. 发送短信按钮不可用
    $("#sendSmsCode").prop("disabled", true);
   //2. 每过1秒调用1次匿名函数, 获取返回值,用来清除计时器
    let timer = setInterval(function () {
       //3. 匿名函数中计数减1
        count--;
       //4. 按钮上的文字变为:x秒后可再次发送验证码
        $("#sendSmsCode").val(count + "秒后可再次发送验证码");
       //5. 如果计数变为0
        if (count == 0) {
           //6. 按钮变得可用
            $("#sendSmsCode").prop("disabled", false);
           //7. 文本变成:发送手机验证码
            $("#sendSmsCode").val("发送手机验证码");
           //8. 清除计时器
            clearInterval(timer);
        }
    }, 1000);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 JavaScript 向手机发送验证码,需要借助短信平台提供的 API 接口。一般来说,需要先在短信平台注册账号,并获取相应的 API Key 和 Secret Key。以阿里云短信服务为例,下面给出一个简单的示例代码: ``` // 引入阿里云 SDK const Core = require('@alicloud/pop-core'); // 配置 SDK const client = new Core({ accessKeyId: '<your-access-key-id>', accessKeySecret: '<your-access-key-secret>', endpoint: 'https://dysmsapi.aliyuncs.com', apiVersion: '2017-05-25' }); // 发送短信验证码 const params = { RegionId: 'cn-hangzhou', PhoneNumbers: '<your-phone-number>', SignName: '<your-sign-name>', TemplateCode: '<your-template-code>', TemplateParam: '{code:<your-verification-code>}' }; const requestOption = { method: 'POST' }; client.request('SendSms', params, requestOption).then((result) => { console.log(result); }, (ex) => { console.log(ex); }); ``` 在代码中,需要将 `<your-access-key-id>` 和 `<your-access-key-secret>` 替换成阿里云短信服务平台上的 API Key 和 Secret Key,将 `<your-phone-number>` 替换成目标手机号码,将 `<your-sign-name>` 替换成已经注册的短信签名,将 `<your-template-code>` 替换成已经创建的短信模板编码,将 `<your-verification-code>` 替换成生成的验证码。 需要注意的是,短信平台一般会限制每天或者每小时发送短信的数量,需要根据实际情况进行调整。同时,短信发送也会产生一定的费用,需要开通相应的计费服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值