jQuery实现倒计时重新发送短信验证码功能示例

发布时间 - 2026-01-10 22:28:08    点击率:

本文实例讲述了jQuery实现倒计时重新发送短信验证码功能的方法。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html>
<head>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
var countdown=60;
function settime(obj) {
  if (countdown == 0) {
    obj.removeAttribute("disabled");
    obj.value="免费获取验证码";
    countdown = 60;
    return;
  } else {
    obj.setAttribute("disabled", true);
    obj.value="重新发送(" + countdown + ")";
    countdown--;
  }
setTimeout(function() {
  settime(obj) }
  ,1000)
}
</script>
<body>
<input type="button" id="btn" value="免费获取验证码" onclick="settime(this)" />
</body>
</html>

实践例子:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>抢占iPhone7专属预订名额</title>
    <link rel="stylesheet" href="getiphone.css" />
  </head>
  <body style="width: 100%;height: 100%;background:#fff url(iponeImg/beijing.png) no-repeat center fixed;background-size:100% 100%;text-align: center;">
    <div class="top">
      <img src="iponeImg/wenan.png" />
    </div>
    <h1 class="title"><span></span>上市时间同步发售<span></span><br />首批新苹果30个预订专属名额</h1>
    <form id="activityForm" class="form-horizontal" method="post" action="/wamei/activityController/save.htm">
      <label>
        <span><img src="iponeImg/yonghu.png" /></span>
        <i></i>
        <input type="text" class="inline-input" id="name" name="name" placeholder="请输入您的真实姓名" datatype="*1-20" errormsg="姓名最多20个中英文字符!" nullmsg="请输入您的真实姓名!" />
      </label>
      <label>
        <span><img src="iponeImg/dianhua.png" /></span>
        <i></i>
        <input type="text" class="inline-input" id="mobilePhone" name="mobilePhone" placeholder="请输入您的手机号码" datatype="*" errormsg="请输入您的手机号码!" nullmsg="请输入您的手机号码!" />
      </label>
      <label>
        <span><img src="iponeImg/yanzhengma.png" /></span>
        <i></i>
        <input type="text" id="validateCode" class="inline-input" name="validateCode" placeholder="验证码" datatype="*" errormsg="请输入验证码!" nullmsg="请输入验证码!" style="width:180px;" />
        <a id="num" mark="1" >获取验证码</a>
      </label>
      <label id="get">
        <input id="confirm" type="submit" value="提交抢占名额" />
      </label>
      <label>
        <a href="/wamei/pages/activity/details.html" id="activity">查看活动详情</a>
      </label>
    </form>
    <div class="bottom">
      <span></span>
      <img src="iponeImg/logo.png" />
      <span></span>
    </div>
    <div id="success">
      <div class="successImg">
        <a class="close"></a>
        <p><img src="iponeImg/chenggong.png" />恭喜提交成功</p>
        <p style="padding-top: 0px;font-size: 23px;">分享一下,安抚激动的心</p>
      </div>
    </div>
  </body>
</html>
<!-- scripts -->
<script src="/wamei/pages/js/jquery.min.js"></script>
<script src="/wamei/pages/js/jquery.form.js"></script>
<script src="/wamei/pages/js/bootstrap.min.js"></script>
<script src="/wamei/pages/js/Validform_v5.3.2.js"></script>
<script type="text/javascript">
  $(function(){
    //提交表单
    $("#activityForm").Validform({
      btnSubmit:"#confirm",
      tiptype:function(msg){
        if(msg != '' && msg!='通过信息验证!'){
          alert(msg);
        }
      },
      tipSweep:true,
      beforeSubmit:function(){
        saveForm();
        return false;
      }
    });
  });
  //只允许在APP内打开
  function isMobile(){
    var u = navigator.userAgent;
    var mobileFlag = u.indexOf('type/tfbrowser') > -1;
    return mobileFlag;
  }
  //手机号码验证
  $("#mobilePhone").blur(function(){
    var mobilePhone =$("#mobilePhone").val();
    var myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\d{8})$/;
    if(mobilePhone){
      if(!myreg.test(mobilePhone)){
        alert("请输入有效的手机号码!");
        $("#mobilePhone").val("");
        return ;
      }
    }
  });
  //发送短信验证码
  $("#num").click(function(){
    var mobilePhone =$("#mobilePhone").val();
    var url="/wamei/activityController/sendValidCode.htm";
    if(!mobilePhone){
      alert("请输入您的手机号码!");
      return ;
    }
    var mark = $("#num").attr("mark");
    if("1"==mark){
      settime(this);
      $.post(url,{mobilePhone:mobilePhone},function(html){
        var data = eval("("+html+")");
        if(data && data.statusCode==1){
          console.log("send success!");
          alert("短信验证码已发送,请查收!");
        }else{
          alert(data.msg);
        }
      });
    }
  });
  //提交form表单
  function saveForm(){
    $("#activityForm").ajaxSubmit({
      //data: {'columnStr':columnStr},
      type: 'post',
      async: false,
      success: function($data) {
        var data = eval("("+$data+")");
        if(data && data.statusCode==1){
          $("#success").show();
        }else{
          alert(data.msg);
          $("#mobilePhone").val("");
        }
      }
    });
  }
  $(".close").click(function(){
    $("#success").hide();
    window.location.reload();
  })
  //短信后倒计时
  var countdown=60;
  function settime(obj) {
    if (countdown == 0) {
      $(obj).attr("disabled",false);
      $(obj).attr("mark","1");
      $(obj).html("获取验证码");
      countdown = 60;
      return;
    } else {
      $(obj).attr("disabled", true);
      $(obj).attr("mark","0");
      $(obj).html("重新发送(" + countdown + ")");
      countdown--;
    }
    setTimeout(function() {
          settime(obj) }
        ,1000)
  }
// $("#confirm").click(function(){
//   $("#success").show();
// })
</script>

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools./regex/javascript

正则表达式在线生成工具:
http://tools./regex/create_reg

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery日期与时间操作技巧总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery表格(table)操作技巧汇总》、《jquery中Ajax用法总结》及《jquery选择器用法总结》

希望本文所述对大家jQuery程序设计有所帮助。


# jQuery  # 倒计时  # 重新发送  # 短信  # 验证码  # jQuery实现发送验证码并60秒倒计时功能  # 基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)  # jQuery实现的手机发送验证码倒计时效果代码分享  # jquery实现手机发送验证码的倒计时代码  # jQuery实现发送验证码控制按钮禁用功能  # 请输入  # 您的  # 表单  # 真实姓名  # 正则表达式  # 操作技巧  # 相关内容  # 最多  # 感兴趣  # 英文  # 给大家  # 首批  # 更多关于  # 所述  # 上市时间  # 程序设计  # 发送短信  # 只允许 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 深圳网站制作培训,深圳哪些招聘网站比较好?  北京企业网站设计制作公司,北京铁路集团官方网站?  如何快速登录WAP自助建站平台?  网站制作免费,什么网站能看正片电影?  如何在服务器上三步完成建站并提升流量?  Python图片处理进阶教程_Pillow滤镜与图像增强  JavaScript如何实现音频处理_Web Audio API如何工作?  高性价比服务器租赁——企业级配置与24小时运维服务  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  PHP 500报错的快速解决方法  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Linux安全能力提升路径_长期防护思维说明【指导】  焦点电影公司作品,电影焦点结局是什么?  Laravel如何使用模型观察者?(Observer代码示例)  Laravel如何使用Service Container和依赖注入?(代码示例)  如何在万网开始建站?分步指南解析  ,交易猫的商品怎么发布到网站上去?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在宝塔面板中修改默认建站目录?  如何实现javascript表单验证_正则表达式有哪些实用技巧  零基础网站服务器架设实战:轻量应用与域名解析配置指南  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  中山网站制作网页,中山新生登记系统登记流程?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Android 常见的图片加载框架详细介绍  如何用搬瓦工VPS快速搭建个人网站?  如何用景安虚拟主机手机版绑定域名建站?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  高防服务器租用指南:配置选择与快速部署攻略  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  免费视频制作网站,更新又快又好的免费电影网站?  高端建站三要素:定制模板、企业官网与响应式设计优化  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  如何在新浪SAE免费搭建个人博客?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  如何用PHP快速搭建CMS系统?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程