Как включить/отключить виджет Google reCaptcha?

Есть ли способ программно включить/отключить виджет Google reCaptcha? Цель этого состоит в том, чтобы предотвратить преждевременный выбор пользователем флажка "Я не робот".


person reformed    schedule 16.09.2016    source источник
comment
Нельзя ли просто скрыть элемент?   -  person thanksd    schedule 16.09.2016
comment
Конечно, это возможно, но я бы выбрал такой подход, если бы не существовало какой-либо функции отключения/включения, о которой я не знаю. Я просмотрел документацию Google и ничего не увидел, поэтому мне интересно, знает ли кто-нибудь решение.   -  person reformed    schedule 16.09.2016
comment
Я думаю, вы могли бы отложить метод .render на основе завершения обратного вызова из какого-либо события, например, последнего заполняемого элемента вашей формы или чего-то еще, что вы выберете.   -  person Robert Wade    schedule 16.09.2016
comment
Ах поймал. Это возможно с помощью пользовательской темы.   -  person thanksd    schedule 16.09.2016


Ответы (1)


Я нашел решение благодаря этому ответу.

Добавьте этот 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");
person reformed    schedule 16.09.2016