首頁  >  問答  >  主體

jquery - thinkphp3.2.3的驗證碼自動刷新

thinkphp的ajax的驗證碼錯誤自動刷新怎麼寫?
寫在這個回傳函數的else這裡

#附上下面的html


怎麼再次觸發這個點擊時間在else那裡?

迷茫迷茫2713 天前512

全部回覆(6)我來回復

  • 黄舟

    黄舟2017-05-16 13:18:38

    驗證碼你可以自己寫,也可以用第三方函式庫,現在第三方函式庫蠻多啦,刷新機制,推薦使用api方式,寫一個Javascript給一個隨機數字來區分即可。
    範例:
    這裡我使用的是第三方的驗證碼庫gregwar/captcha

    <input type="text" name="captcha" class="form-control" style="width: 300px;">
              <a onclick="javascript:re_captcha();" ><img src="{{ URL('code/captcha') }}"  alt="验证码" title="刷新图片" width="100" height="40" id="code" border="0"></a>
    
    <script>  
      function re_captcha() {
        $url = "{{ URL('kit/captcha') }}";
            $url = $url + "/" + Math.random();
            document.getElementById('code').src=$url;
      }
    </script>

    你錯誤自動刷新的話,重新呼叫一下re_captcha方法。

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-16 13:18:38

    驗證碼刷新原理其實很簡單, 只是加個後綴而已 ?t=123123

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:18:38

    雷雷

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-16 13:18:38

    1.回調的else裡去刷新,方法樓上各位給了。

    2.如果第一點做到了,還沒刷新,那我猜是你的判斷有問題吧:
    if(data.info==1)
    這裡,是不是應該是:if(data.status== 1) ????

    3.$("#2")是什麼? id是不能用數字開頭的。

    回覆
    0
  • PHPz

    PHPz2017-05-16 13:18:38

    個人習慣大概是這樣

    1. 在驗證碼圖處上存個src 保存驗證碼原始位址(防止圖片位址越來越長)

    2. 綁定點擊切換事件

    3. 驗證碼錯誤時透過trigger解讀驗證碼點擊事件實現切換驗證碼

    //代码手写 难免有误
    $(function(){
        var verifyImg = $("#verify_img");
        verifyImg.click(function(){
            $(this).attr("src",$(this).data('src') + '?v=' + Math.random());
        }).data('src', verifyImg.attr('src'));
        
        $("#fm-xxx").submit(function(){
            var fm = $(this);
            $.post(fm.attr('action'), fm.serialize(), function(data){
                if(data.code == 'verify-code') {
                    verifyImg.trigger("click");
                } else {
                    //...
                }
            });
            return false;
        });
    });

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:18:38

    在下面加上

    $("#2").html(验证码错误);
    
    $("#verify_img").attr("src",<?php echo U('Index/yzm');?>);

    回覆
    0
  • 取消回覆