最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)發(fā)送短信驗(yàn)證后按鈕倒計(jì)時(shí)功能(防止刷新倒計(jì)時(shí)失效)

 更新時(shí)間:2017年07月07日 16:35:52   作者:非陽  
這篇文章主要介紹了JS實(shí)現(xiàn)發(fā)送短信驗(yàn)證后按鈕倒計(jì)時(shí)功能防止刷新倒計(jì)時(shí)失效問題,在項(xiàng)目開發(fā)中經(jīng)常會用到此功能,下面小編通過本文給大家分享JS實(shí)現(xiàn)發(fā)送短信驗(yàn)證后按鈕倒計(jì)時(shí)功能(防止刷新倒計(jì)時(shí)失效),需要的朋友參考下吧

應(yīng)用場景

在開發(fā)“發(fā)送短信驗(yàn)證”功能時(shí)候,要解決一個(gè)問題,防止惡意或頻繁發(fā)送短信驗(yàn)證碼問題。一般原理是“當(dāng)點(diǎn)擊發(fā)送按鈕時(shí),發(fā)送ajax請求到服務(wù)器發(fā)送短信驗(yàn)證碼,成功則把發(fā)送按鈕設(shè)置為不可點(diǎn)擊,并且調(diào)用定時(shí)器,按鈕顯示倒計(jì)時(shí)”。如果就這樣不對倒計(jì)時(shí)存儲做處理,那么當(dāng)刷新頁面,會出現(xiàn)倒計(jì)時(shí)失效,按鈕可點(diǎn)擊。提供以下解決方案:

  • 利用cookie存儲倒計(jì)時(shí)
  • 利用HTML5的localStorage 存儲倒計(jì)時(shí)

利用cookie存儲倒計(jì)時(shí)

發(fā)送成功后把剩余倒計(jì)時(shí)存儲到cookie,當(dāng)頁面刷新時(shí),檢查cookie 是否還存儲著剩余倒計(jì)時(shí)?,如果有,發(fā)送按鈕則保持倒計(jì)時(shí)狀態(tài),不可點(diǎn)擊,否則發(fā)送按鈕可點(diǎn)擊。

HTML代碼

<input type="button" id="btn" disabled="disabled" value="獲取驗(yàn)證碼">

jQuery代碼

<!--引入jquery.cookie.js 插件-->
<script src="http:jquery.cookie.js" type="text/javascript" charset="utf-8"></script>
<!--邏輯功能代碼 -->
<script>
  $(function(){
   if($.cookie("total")!=undefined&&$.cookie("total")!='NaN'&&$.cookie("total")!='null'){//cookie存在倒計(jì)時(shí)
     timekeeping();
   }else{//cookie 沒有倒計(jì)時(shí)
     $('#btn').attr("disabled", false);
   }
   function timekeeping(){
    //把按鈕設(shè)置為不可以點(diǎn)擊
    $('#btn').attr("disabled", true);
    var interval=setInterval(function(){//每秒讀取一次cookie
     //從cookie 中讀取剩余倒計(jì)時(shí)
     total=$.cookie("total");
     //在發(fā)送按鈕顯示剩余倒計(jì)時(shí)
     $('#btn').val('請等待'+total+'秒');
     //把剩余總倒計(jì)時(shí)減掉1
     total--;
     if(total==0){//剩余倒計(jì)時(shí)為零,則顯示 重新發(fā)送,可點(diǎn)擊
     //清除定時(shí)器
     clearInterval(interval);
     //刪除cookie
     total=$.cookie("total",total, { expires: -1 });
     //顯示重新發(fā)送
     $('#btn').val('重新發(fā)送');
     //把發(fā)送按鈕設(shè)置為可點(diǎn)擊
     $('#btn').attr("disabled", false);
     }else{//剩余倒計(jì)時(shí)不為零
     //重新寫入總倒計(jì)時(shí)
     $.cookie("total",total);
     }
    },1000);
   }
   //綁定發(fā)送按鈕
    $('#btn').click(function(event) {
   /* Act on the event */
   // alert($("#btn").val());
   //校驗(yàn)手機(jī)號碼
   var phone=$('#phone').val();
   var pre=/^[1][358][0-9]{9}$/;
   if(phone==''){
     layer.open({
       content: '手機(jī)號碼不能為空',
       time: 2
     });
     return this;
   }else{
     var pre=/^[1][358][0-9]{9}$/;
     if(!pre.test(phone)){
      layer.open({
        content: '手機(jī)號碼格式有誤!',
        time: 2
      });
       return this;
     }
   }
   $.ajax({
    url: '',//服務(wù)器發(fā)送短信
    type: 'GET',
    dataType: 'json',
    data: {phone: phone},
   })
   .done(function(re) {
      var str="發(fā)送短信驗(yàn)證碼成功,請注意查看您的手機(jī)";
      // console.log(re);
      if(re){
        $.cookie("total",60);
        timekeeping();
      }else{
        switch (re[0]) {
         case '160038':
          str="短信驗(yàn)證碼發(fā)送過頻繁";
          break; 
         case '160034':
          str="號碼黑名單";
          break; 
         case '160000':
          str="系統(tǒng)錯(cuò)誤";
          break;
         case '000000':
          str="發(fā)送成功";
          break;
         case '112300':
          str="接收短信的手機(jī)號碼為空";
          break; 
         case '160040':
          str="驗(yàn)證碼超出發(fā)送上限";
          break;
         case '160042':
          str="號碼格式有誤";
          break; 
         default:
          str="發(fā)送驗(yàn)證碼失敗";
          break;
        }
      }
      layer.open({
         content: str,
         time: 2
       });
   })
   .fail(function() {
    console.log("error");
   })
   .always(function() {
    console.log("complete");
   });
  });
  })
</script>

以上所述是小編給大家介紹的JS實(shí)現(xiàn)發(fā)送短信驗(yàn)證后按鈕倒計(jì)時(shí)功能(防止刷新倒計(jì)時(shí)失效),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

旬邑县| 林州市| 宜春市| 平武县| 论坛| 康乐县| 额尔古纳市| 永寿县| 屯门区| 仪陇县| 建宁县| 静乐县| 丹棱县| 洛宁县| 昌乐县| 怀仁县| 高陵县| 扬中市| 广河县| 巨野县| 同心县| 福安市| 谢通门县| 安阳市| 滦南县| 阿克陶县| 哈密市| 芜湖县| 海林市| 桃园市| 德惠市| 泌阳县| 贡觉县| 阿合奇县| 辉南县| 从化市| 富蕴县| 翁牛特旗| 汉川市| 汽车| 辽阳县|