2015-07-28 23 views
17

ReCaptcha v2 espone eventi lato client? Sto cercando in particolare di identificare quando la risposta Captcha è stata restituita una volta spuntata la casella, quindi posso rivelare il pulsante "Continua" qui sotto.ReCaptcha v2 eventi lato client

enter image description here

Senza questo è possibile per l'utente di fare clic sulla casella di controllo poi rapidamente clic sul pulsante di invio prima che la risposta captcha è tornato.

È possibile aggiungere il proprio gestore di eventi click alla classe recaptcha-checkbox-checkmark e interrogare la visibilità del segno di spunta, mi chiedevo solo se esistesse un modo più semplice per farlo?

$(".recaptcha-checkbox-checkmark").click(function() { 
     //...Poll for visibility of tick 
    }); 
+0

possibile duplicato di [Come posso convalidare google reCAPTCHA v2 utilizzando javascript/jQuery?] (http://stackoverflow.com/questions/27902539/how-can-i-vali date-google-recaptcha-v2-using-javascript-jquery) –

+0

Non proprio la stessa cosa qui la domanda è come convalidare su submit. Sto cercando di controllare la visibilità del pulsante di invio. – QFDev

risposta

17

È possibile configurare reCAPTCHA per dare un callback sulla convalida successo utilizzando l'attributo data-richiamata nel tag g-recaptcha o tramite il parametro 'richiamata' se si utilizza il rendering esplicito.

Vedi https://developers.google.com/recaptcha/docs/display#render_param

Esempio con esplicito il rendering:

var myCallback = function(val) { console.log(val); }; 
grecaptcha.render(
    document.getElementsById('my-recaptcha-placeholder'), 
    { 
    callback: myCallback, 
    sitekey: mySiteKey 
    }); 
13

Un'altra soluzione è quella di impostare data-callback direttamente sul g-recaptcha div, come questo

<script type="text/javascript"> 
    var imNotARobot = function() { 
    console.info("Button was clicked"); 
    }; 
</script> 

<div class="g-recaptcha" data-callback="imNotARobot" data-sitekey="key"></div> 
+0

Inoltre, se si sta visualizzando un pulsante "Continua" durante la convalida, è possibile anche nasconderlo quando la convalida scade con l'attributo 'data-expired-callback', poiché la convalida del recaptcha scade dopo alcuni secondi di inattività. – Marquizzo

+1

Infine, qualcuno in realtà ha dato una risposta che ha funzionato! Grazie! Ho provato così tanti prima che ne prendessi uno. È bello sapere che puoi attivare una richiamata direttamente dal segnaposto. – BarryMode

+0

Grazie! Funziona perfettamente. – Gavin