0

Есть ли способ программно включить/отключить виджет Google reCaptcha? Целью этого было бы предотвратить преждевременное нажатие кнопки «Я не робот».Как включить/отключить виджет reCaptcha Google?

+0

Можете ли вы не просто скрыть элемент? – thanksd

+0

Конечно, это возможно, но это был бы подход, который я бы предпринял, если не существует какой-либо функции отключения/включения, о которой я не знаю. Я просмотрел документацию Google и ничего не видел, поэтому мне интересно, знает ли кто-нибудь о решении. – reformed

+0

Я бы подумал, что вы могли бы задержать метод .render, основанный на завершении обратного вызова из какого-либо события, например, заполнив последний элемент вашей формы или все, что вы выберете. –

ответ

1

Я нашел решение благодаря this answer.

Добавить CSS:

.disabled-element { 
    opacity: 0.65; 
    pointer-events: none; 
} 

Добавить в disabled-element класс к div, содержащей ReCaptcha элемент:

<script> 
    var onloadCallback = function() { 
    alert("grecaptcha is ready!"); 
    }; 
</script> 

<div class="disabled-element" id="captcha"></div> 
... 
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script> 

И, наконец, когда вы будете готовы, чтобы включить элемент ReCaptcha, удалите класс:

$("#captcha").removeClass("disabled-element");