页面添加滑动验证码

增加后的效果如图所示:


因为项目需要,需要在注册页面添加滑动验证码。所以在此记录一下。我这里写的都是前端需要添加的代码。

1、首页引用极验验证码所需的js文件。

需要注意的是:如果网站是http协议则引用

如果网站是https协议,则引用

2、前端html代码:

在需要添加验证码的地方添加如下:

这个的作用是:没加载出来滑动验证码时,现在“”正在加载验证码的...“”的文字

<div id="captcha1">
  <p id="wait1" class="show">正在加载验证码......</p>
</div>

这个的作用是:当没完成滑动验证码的时候,点击“”获取手机验证码“”的提示(我这个是该事件绑定在获取手机验证码的按钮上了,所以在未完成滑动验证码之前,点击获取手机验证码,会提示该文字。如果你是绑定在提交上,则,点击提交时会提示该文字。)

<div>
  <p id="notice1" class="hide">请先完成验证</p>

</div>

3、前端js代码:

 $.ajax({
    url: "/xxx/StartCaptchaServlet?t=" + (new Date()).getTime(), // 加随机数防止缓存
    type: "get",
    dataType: "json",
    success: function (data) {
      console.log(data);
      alert('111'); //我这样是为了调试看看接口成功与否。成功则会弹出111
      // 调用 initGeetest 初始化参数
      // 参数1:配置参数
      // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它调用相应的接口
      initGeetest({
        gt: data.gt,
        challenge: data.challenge,
        new_captcha: data.new_captcha, // 用于宕机时表示是新验证码的宕机
        offline: !data.success, // 表示用户后台检测极验服务器是否宕机,一般不需要关注
        product: "popup", // 产品形式,包括:floatpopup
        width: "100%"
        // 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config
      }, handler1);
    }
  });
//滑动验证码
var handler1=function (captchaObj) {
   alert('222');//同样也是为了测试是否调用。
//我这个项目是将该事件添加到了获取手机验证码上。s所以这个click的事件就写在获取手机验证码的按钮上。
//就是你想把这个添加到哪个上面,你点击的就写哪个按钮
  $("#getphotocodeCode1").click(function () {
    var result = captchaObj.getValidate();
    if (!result) {
      $("#notice1").show();
      setTimeout(function () {
        $("#notice1").hide();
      }, 2000);
    }else{
     //这个地方写一些需要做的操作。比如我的项目,是在获取手机验证码之前需要判断手机号、密码等,那么这么判断就写在这里
      var mytimestamp = new Date().getTime();
      /*sendRanVerifiCode 发送手机/邮箱验证码*/
      var myajax=$.ajax({
        type: "post",
        url: "/xxx/xxx.do",
        timeout:15000,
       //记住加上以下三个参数
        data :'"&geetest_challenge=" + result.geetest_challenge+"&geetest_validate="+result.geetest_validate+"&geetest_seccode="+result.geetest_seccode,
        //data:'',
        dataType: "json",
        "contentType": "application/x-www-form-urlencoded; charset=utf-8",
        success: function(data) {
          if (data.code=='success') {
            jybtools.showmsg("发送成功");
          }else{
            jybtools.showmsg(data.msg,1);
          }
        },
        complete : function(XMLHttpRequest, Status) {
          if(Status!='success'){//超时,status还有success,error等值的情况
            myajax.abort(); //取消请求
            console.log(Status);
          }else{
          }
        }
      });
    }
    e.preventDefault();
  })
  // 将验证码加到idcaptcha的元素里,同时会有三个input的值用于表单提交
//  captchaObj.bindOn("#getphotocodeCode1");
  captchaObj.appendTo("#captcha1");
  captchaObj.onReady(function () {
    $("#wait1").hide();
  });
}

官网地址:https://docs.geetest.com/install/deploy/client/web#%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0

我说的不明白之处,可以留言问我,也可以查看官网哈。


猜你喜欢

转载自blog.csdn.net/scy_fighting/article/details/80802628