nciaer 发表于 2020-7-10 17:02:38

Discuz给手机版加上判断验证码是否正确的小图标

直接上图:


用户输入完之后,可以判断输入的验证码是否正确,当然了,因为用的onblur方法,所以得点击旁边空白才行。

需要修改一个文件,手机模板目录下的common/seccheck.htm,

这里找到输入验证码的文本框,name值是seccodeverify,加入onblur事件,如onblur = "checksec(this);",checksec的定义为:
function checksec(o) {
      var secverify = o.value;
      var modid = "{$_G}::{CURMODULE}";
      var idhash = "c$sechash";

       // 从pc那获取到的检测验证码是否正确的接口
      var url = 'misc.php?mod=seccode&action=check&inajax=1&modid=' + modid + '&idhash=' + idhash + '&secverify=' + secverify;

      $.get(url, function(o) {
                if(o.indexOf('succeed') != -1) { // 结果里有succeed,代表正确,显示绿色对勾
                        $('#checkresult').html('<img src="'+ IMGDIR + '/check_right.gif" width="16" height="16" class="vm" />');
                } else {
                        $('#checkresult').html('<img src="'+ IMGDIR + '/check_error.gif" width="16" height="16" class="vm" />');
                }
      }, 'text'); // 官方接口返回的是xml,我这里设置text,直接返回text得了。
}


在验证码文本框的下一行加入:
<a href = "javascript:;">换一个</a><span id = "checkresult"></span>
id值是checkresult的的标签是显示验证码结果的标签,updatesec方法是更换验证码的,定义如下:
function updatesec() {
      $('#seccodeverify_$sechash').attr('value', '');
      var tmprandom = 'S' + Math.floor(Math.random() * 1000);
      $('.sechash').attr('value', tmprandom);
      $('#checkresult').html('');
      $('.seccodeimg').attr('src', 'misc.php?mod=seccode&update={$ran}&idhash='+ tmprandom +'&mobile=2');
}


完事,收工!


页: [1]
查看完整版本: Discuz给手机版加上判断验证码是否正确的小图标