Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在用户验证且到期后重置recaptcha?_Javascript_Jquery_Recaptcha - Fatal编程技术网

Javascript 如何在用户验证且到期后重置recaptcha?

Javascript 如何在用户验证且到期后重置recaptcha?,javascript,jquery,recaptcha,Javascript,Jquery,Recaptcha,好的,到目前为止,我想找出的代码是: function recaptchaCallback() { $('#submitBtn').removeClass('btn-hide'); $('#submitBtn').addClass('btn-show'); if (grecaptcha.getResponse() == ''){ $('#submitBtn').addClass('btn-hide'); $('#submitBtn').removeClass('b

好的,到目前为止,我想找出的代码是:

function recaptchaCallback() {
    $('#submitBtn').removeClass('btn-hide');
    $('#submitBtn').addClass('btn-show');
if (grecaptcha.getResponse() == ''){
    $('#submitBtn').addClass('btn-hide');
    $('#submitBtn').removeClass('btn-show');
    grecaptcha.reset();
}
}
我想做的是这样的:如果recaptcha=expired,那么执行这个{}

if (grecaptcha.getResponse() == ''){
我认为这很接近我需要的,但是我们如何确定在用户验证他们是人类之后,recaptcha是否已经过期。如果用户验证后未按下提交按钮,则recaptcha将在60秒后过期。在这一点上,它需要重新验证,所以当这种情况发生时,禁用submit按钮是有意义的。这就是我想要实现的

setInterval可以在执行代码之前等待60秒。


在使用Ty Q.的解决方案时,我注意到它起了作用,但一直在发射,所以它只是第一次起作用。一旦使用clearInterval触发setInterval,它将每60秒继续触发一次。我对此进行了研究,并提出了这个解决方案

function recaptchaCallback() {
  $('#submitBtn').removeClass('btn-hide');
  $('#submitBtn').addClass('btn-show');
  var timesRun = 0;
  var interval = setInterval(function(){
    timesRun += 1;
      if(timesRun === 1){
        $('#submitBtn').addClass('btn-hide');
        $('#submitBtn').removeClass('btn-show');
        grecaptcha.reset();
        clearInterval(interval);
    }
  }, 60000);
}

“提交”按钮是实际的还是实际的?如果是这样的话,您可以将属性disabled添加到它中,这样它就会产生如下结果:这个按钮不起作用我的按钮是这样的当它被验证时,它会起作用,添加一个类来显示按钮。否则按钮将隐藏。我需要的是检查recatpcha是否过期,如果过期,则反转验证,重置recaptcha,然后更改回类,以便在用户重新验证之前再次隐藏按钮。您是否尝试使用JS的setInterval定期检查响应?类似于setIntervalfunction{if grecaptcha.getResponse={$'submitBtn'.addClass'btn-hide';$'submitBtn'.removeClass'btn-show';grecaptcha.reset;}},500;
function recaptchaCallback() {
  $('#submitBtn').removeClass('btn-hide');
  $('#submitBtn').addClass('btn-show');
  var timesRun = 0;
  var interval = setInterval(function(){
    timesRun += 1;
      if(timesRun === 1){
        $('#submitBtn').addClass('btn-hide');
        $('#submitBtn').removeClass('btn-show');
        grecaptcha.reset();
        clearInterval(interval);
    }
  }, 60000);
}