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);
}