js实现发送短信验证码后60秒倒计时

                     js实现发送短信验证码后60秒倒计时



效果图:

要多次点击只能在限定60秒内起一次作用,不能开启多个timer,这样效果会错乱

<div class="verification">
<label for="code"><i class="am-icon-code-fork"></i></label>
<input type="tel" name="" id="code" placeholder="请输入验证码">
<a class="btn" href="javascript:void(0);" id="sendMobileCode">
    <span id="dyMobileButton">获取验证码</span>
</a>
</div>

JQuery的脚本语言

<script>
var vercode	 = 0;
	var time = 60;
	var flag = true;   //设置点击标记,防止60内再次点击生效

		//发送验证码
        $('#dyMobileButton').click(function(){
            $(this).attr("disabled",true);
			var phone = $('#phone').val();
            if(flag){
                var timer = setInterval(function () {

                    if(time == 60 && flag){
                        flag = false;

                        $.ajax({
                            type : 'get',
                            async : false,
                            url : 'sms.do',
                            data : {
                                "phone" : phone
                            },
                            dataType:"json",
                            success : function(data) {
                                if(data.status == 0){
                                    vercode = data.data;
                                    $("#dyMobileButton").html("已发送");
								}else {
                                    alert(data.msg);
                                    flag = true;
                                    time = 60;
                                    clearInterval(timer);
                                }
                            }
                        });
					}else if(time == 0){
                        $("#dyMobileButton").removeAttr("disabled");
                        $("#dyMobileButton").html("免费获取验证码");
                        clearInterval(timer);
                        time = 60;
                        flag = true;
                    }else {
                        $("#dyMobileButton").html(time + " s 重新发送");
                        time--;
                    }
                },1000);
			}

		});

        //手机号注册
        $('input[name= "submit_phone"]').click(function(){
            var  reader_com_check  = $('#reader-me').attr("checked");
//            if(reader_com_check != true) {
//                alert("请先点击确认商城服务协议再进行注册");
//                return false;
//			}
		  var code = $('#code').val();
		  if(vercode != code) {
		      alert("请输入正确的验证码");
		      $('#code').val("");
		  }else {
		      var phone = $('#phone').val();
		      var password = $('#password1').val();
		      var passwordRepeat = $('#passwordRepeat1').val();
		      if(password != passwordRepeat){
		          alert("您输入的密码不一致,请从新输入");
                  $('#password1').val("");
                  $('#passwordRepeat1').val("");
		          return false;
			  }
              var form = new FormData();
              form.append("phone", phone);
              form.append("password", password);

              $.ajax({
                  url:"register.do",
                  type:"post",
                  data:form,
                  processData:false,
                  contentType:false,
                  success:function(data){
                      if(data.status == 0){
                          alert(data.msg);
                          window.location.href = "init_login_page.do";
                      }else if(data.status == 1){
                          alert(data.msg);
                      }

                  },
                  error:function(e){
                      alert("错误提交!");

                  }
              });
		  }
        });


	</script>

 

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值