好的,所以到目前为止,我试图找出的代码是:
function recaptchaCallback() {
$('#submitBtn').removeClass('btn-hide');
$('#submitBtn').addClass('btn-show');
if (grecaptcha.getResponse() == ''){
$('#submitBtn').addClass('btn-hide');
$('#submitBtn').removeClass('btn-show');
grecaptcha.reset();
}
}
我想做的事情是这样的:如果recaptcha =过期,那么就这样做{}
if (grecaptcha.getResponse() == ''){
我认为接近我的需要,但是在用户验证它们是人类后,我们如何确定重新接收是否已经过期。如果用户验证然后没有按下提交按钮,则重新计算在60秒后过期。此时需要重新验证,因此在发生这种情况时禁用提交按钮也是有意义的。这就是我想要完成的事情。
答案 0 :(得分:1)
setInterval
可以在执行代码之前等待60秒。
function recaptchaCallback() {
$('#submitBtn').removeClass('btn-hide');
$('#submitBtn').addClass('btn-show');
setInterval(function () {
$('#submitBtn').addClass('btn-hide');
$('#submitBtn').removeClass('btn-show');
grecaptcha.reset();
clearInterval(this);
}, 60000);
}
答案 1 :(得分:0)
采取Ty Q.的解决方案,我注意到它有效,但是不断射击,所以它只是第一次工作。一旦setInterval被触发,即使使用clearInterval,它也会每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);
}