Js實(shí)現(xiàn)手機(jī)發(fā)送驗(yàn)證碼時(shí)按鈕延遲操作

字號(hào):


    在做項(xiàng)目的時(shí)候,經(jīng)常遇到發(fā)短信驗(yàn)證碼的問題,這時(shí)候需要用戶點(diǎn)完發(fā)送驗(yàn)證碼按鈕后,一段時(shí)間內(nèi)不能重復(fù)點(diǎn)擊,畢竟驗(yàn)證碼都是收費(fèi)的嘛,誰都不想浪費(fèi),那么如何實(shí)現(xiàn)這種功能呢?下面來分享一下。
    實(shí)例代碼記錄:
    <script type="text/javascript">
      function start_sms_button(obj){
        var count = 1 ;
        var sum = 30;
        var i = setInterval(function(){
          if(count > 10){
            obj.attr('disabled',false);
            obj.val('發(fā)送驗(yàn)證碼');
            clearInterval(i);
          }else{
            obj.val('剩余'+parseInt(sum - count)+'秒');
          }
          count++;
        },1000);
      }
      $(function(){
        //發(fā)送驗(yàn)證碼
        $('#send_sms').click(function(){
          var phone_obj = $('input[name="phone"]');
          var send_obj = $('input#send_sms');
          var val = phone_obj.val();
          if(val){
            if(IsMobile(val)){
              send_obj.attr('disabled',"disabled");
              //30秒后重新啟動(dòng)發(fā)送按鈕
              start_sms_button(send_obj);
              $.ajax({
                url:'{#url_reset("index/sms")#}',
                data:{'mobile':val},
                dataType:'json',
                type:'post',
                beforeSend:function(){
                  show_loading_body();
                },
                complete:function(){
                  show_loading_body();
                },
                success:function(data){
                  if(data.status!=undefined && (data.status == 'ok' || data.status == 'error')){
                    showMsg(data.msg);
                  }
                }
              });
            }else{
              showMsg("手機(jī)號(hào)的格式錯(cuò)誤");
            }
          }else{
            showMsg('手機(jī)號(hào)不能為空');
          }
        });
      });
    </script>