分享

获取短信验证码 | 易学教程

 yliu277 2019-07-13

点击按钮实现60秒倒计时,并且实现按钮不可点击,60秒之后才可点击,以及按钮的文字改变

第一种场景:

// 60秒倒计时
var countdown = 60;
var timer;


function settime(val) {
timer = setInterval(function() {
$('#sendCode').attr('disabled', true);
$('#sendCode').addClass('activeColor');
countdown--;
$('#sendCode').html('重新发送(' countdown ')');
if (countdown == 0) {
clearInterval(timer);
$('#sendCode').attr('disabled', false);
$('#sendCode').removeClass('activeColor');
$('#sendCode').html('重新获取验证码');
countdown = 60;
}
}, 1000)


}


// cookie的倒计时
function getRemailTime(remaintime) {
var timestamp = Date.parse(new Date());
var nowtime = timestamp / 1000;
// if (remaintime) {
var rtime = nowtime - remaintime;
curCount = 60 - rtime;
if (curCount > 0) {
$('#sendCode').attr('disabled', true);
$('#sendCode').addClass('activeColor');
$('#sendCode').html('重新发送(' (60 - rtime) ')');
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次  
}
// }
}




function SetRemainTime() {
if (curCount <= 0) {
window.clearInterval(InterValObj); //停止计时器
$('#sendCode').attr('disabled', false);
$('#sendCode').removeClass('activeColor');
$('#sendCode').html('重新获取验证码');
// $('.valiTig').hide();
} else {
curCount--;
$('#sendCode').attr('disabled', true);
$('#sendCode').addClass('activeColor');
$('#sendCode').html('重新发送(' curCount ')');


}

}

第二种场景:

html文件:

 <div class='layui-form-item layui-form-item1'>
                <label class='layui-form-label'>手机号码</label>
                <div class='layui-input-block'>
                    <input type='tel' name='phone' lay-verify='required|phone' autocomplete='off' class='layui-input' placeholder='请输入'>
                    <div class='tips'>请输入您的手机号码</div>
                </div>
            </div>
            <div class='layui-form-item layui-form-item1'>
                <label class='layui-form-label'>验证码</label>
                <div class='layui-input-block'>
                    <a id='messageBtn' onclick='getNumber()' data-on=0>免费获取短信验证码</a>
                    <input type='text' name='code' lay-verify='' autocomplete='off' class='layui-input' id='messageInput'>
                    <div class='tips'>请输入短信验证码</div>
                </div>
            </div>

js文件:

//--获取短信验证码--

var getNumber = function(){
    var phone = $('input[name='phone']').val();
    if(phone == ''){
        layer.alert('请先输入您的手机号码!');
    }else{
        //--p0为业务id--
        console.log($(this).data('on'))
        if($(this).data('on') == 0){
            getAjax({ 'p0':p0,'p1': 'sendMobile', 'phone': phone}, function(e) {
                if(e.status == 0){
                    $('#messageBtn').parent().find('.tips').show().html('验证码已发送,请查收');
                    if(curCount > 0 ){
                         return false;
                    }
                    curCount = count;
                    $('#messageBtn').data('on',1);
                    $('#messageBtn').addClass('layui-btn-disabled').css('background','#f2f2f2');
                    $('#messageBtn').html( curCount 's后重新获取');
                    //--启动计时器,1秒执行一次--
                    InterValObj = window.setInterval(SetRemainTime, 1000);


                    var cName = $('input[name='name']').val(),
                        cSname = $('input[name='author']').val();


                    milo.cookie.set('phone',phone);
                    milo.cookie.set('mobileTime',e.data);
                }else{
                    layer.alert(e.msg)
                }
            });
        }
    }
}


//--短信验证码倒计时--
var SetRemainTime = function SetRemainTime() {
  if (curCount <= 0) {        
    window.clearInterval(InterValObj);
    $('#messageBtn').removeClass('layui-btn-disabled').css('background','#d3fce2');
    $('#messageBtn').html('重新获取验证码');
    $('#messageBtn').parent().find('.tips').hide();
    $('#messageBtn').data('on',0);
    if(milo.cookie.get('mobileTime')){
       milo.cookie.clear('mobileTime');
       milo.cookie.clear('phone'); 
    }
  }else {
    curCount--;
    $('#messageBtn').html(curCount 's后重新获取');
  }

}

//--页面初始化--
var isMobileTime = function(){
    var remaintime = milo.cookie.get('mobileTime'),
        phoneNum = milo.cookie.get('phone'),
        cName = milo.cookie.get('name'),
        cSname = milo.cookie.get('sname'),
        timestamp = Date.parse(new Date()),
        nowtime = timestamp / 1000;


    if (remaintime) {
        var rtime = remaintime - nowtime;
        curCount =  rtime;


        if (rtime > 0 ) {
            $('input[name='phone']').val(phoneNum);
            $('#messageBtn').html(curCount 's后重新获取');
            $('#messageBtn').data('on',1);
            $('#messageBtn').addClass('layui-btn-disabled').css('background','#f2f2f2');;
            InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次  
        }
    }
}


isMobileTime();

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约