События на клиентской стороне ReCaptcha v2
Предоставляет ли ReCaptcha v2 какие-либо клиентские события? Я специально пытаюсь определить, когда ответ Captcha был возвращен после того, как поставлен флажок, поэтому я могу открыть кнопку "Продолжить" ниже.
![enter image description here]()
Без этого пользователь может установить флажок, а затем быстро нажать кнопку "Отправить", прежде чем ответ на код с проверкой вернется.
Я мог бы добавить свой собственный обработчик события click к классу recaptcha-checkbox-checkmark
и опрашивать видимость тика, я просто удивился, есть ли более простой способ сделать это?
$(".recaptcha-checkbox-checkmark").click(function() {
//...Poll for visibility of tick
});
Ответы
Ответ 1
Вы можете настроить reCAPTCHA, чтобы дать обратную реакцию при успешной проверке, используя атрибут обратного вызова данных в теге g-recaptcha или через параметр "обратный вызов", если используется явный рендеринг.
См
https://developers.google.com/recaptcha/docs/display#render_param
Пример использования явного рендеринга:
var myCallback = function(val) { console.log(val); };
grecaptcha.render(
document.getElementsById('my-recaptcha-placeholder'),
{
callback: myCallback,
sitekey: mySiteKey
});
Ответ 2
Другим решением является установка data-callback
непосредственно на div g-recaptcha
, как этот
<script type="text/javascript">
var imNotARobot = function() {
console.info("Button was clicked");
};
</script>
<div class="g-recaptcha" data-callback="imNotARobot" data-sitekey="key"></div>