thinkphp的ajax的驗證碼錯誤自動刷新怎麼寫?
寫在這個回傳函數的else這裡
#附上下面的html
怎麼再次觸發這個點擊時間在else那裡?
黄舟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方法。
ringa_lee2017-05-16 13:18:38
1.回調的else裡去刷新,方法樓上各位給了。
2.如果第一點做到了,還沒刷新,那我猜是你的判斷有問題吧:
if(data.info==1)
這裡,是不是應該是:if(data.status== 1) ????
3.$("#2")是什麼? id是不能用數字開頭的。
PHPz2017-05-16 13:18:38
個人習慣大概是這樣
在驗證碼圖處上存個src 保存驗證碼原始位址(防止圖片位址越來越長)
綁定點擊切換事件
驗證碼錯誤時透過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;
});
});
仅有的幸福2017-05-16 13:18:38
在下面加上
$("#2").html(验证码错误);
$("#verify_img").attr("src",<?php echo U('Index/yzm');?>);