js获取验证码倒计时如何实现

方案一:

<div class="div user-input">
  <input type="number" class="code" name="verify" placeholder="请输入手机验证码" required maxlength="6">
  <input type="button" class="obtain generate_code" value=" 获取验证码">
</div>
<script type="text/javascript">
  $(function(){
    $(".generate_code").click(function(){
      var disabled = $(".generate_code").attr("disabled");
      if(disabled){
        return false;
      }
      if($("#mobile").val() == "" || isNaN($("#mobile").val()) || $("#mobile").val().length != 11 ){
        alert("请填写正确的手机号!");
        return false;
      }
      $.ajax({
        async:false,
        type: "GET",
        url: "{:U('User/sms')}",
        data: {mobile:$("#mobile").val()},
        dataType: "json",
        async:false,
        success:function(data){
          console.log(data);
          settime();
        },
        error:function(err){
          console.log(err);
        }
      });
    });
    var countdown=60;
    var _generate_code = $(".generate_code");
    function settime() {
      if (countdown == 0) {
        _generate_code.attr("disabled",false);
        _generate_code.val("获取验证码");
        countdown = 60;
        return false;
      } else {
        $(".generate_code").attr("disabled", true);
        _generate_code.val("重新发送(" + countdown + ")");
        countdown--;
      }
      setTimeout(function() {
        settime();
      },1000);
    }
  })

</script>

方案二:

<div class="div user-input">
  <input type="number" class="code" placeholder="请输入手机验证码" required maxlength="6">
  <input type="button" class="obtain generate_code" value=" 获取验证码" οnclick="settime(this);">
</div>
<script type="text/javascript">

//倒计时
var countdown=60;
function settime(val) {
    if (countdown == 0) {
        val.removeAttribute("disabled");
        val.value="获取验证码";
        countdown = 60;
        return false;
    } else {
        val.setAttribute("disabled", true);
        val.value="重新发送(" + countdown + ")";
        countdown--;
    }
    setTimeout(function() {
        settime(val);
    },1000);
}
</script>


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值