2015-05-03 33 views
22

Ho una forma molto semplice come segue. Voglio fare in modo che il pulsante Invia sia disabilitato e abilitato solo dopo l'utente ha completato con successo il ReCaptcha.ReCaptcha 2.0: abilitare il pulsante Invia sulla richiamata in caso di riconfezionamento riuscito

Suppongo che avrò bisogno di alcuni Javascript/jQuery per farlo.

La documentazione di Google su ReCaptcha 2.0 sembra davvero scarsa e densa (per me, comunque). Apprezzerei alcuni suggerimenti:

<form action="something.php" method="post"> 
    Name: <input type="text" size="40" name="name"><br><br> 
    <div class="g-recaptcha" data-sitekey="############-#####"></div> 
    <input type="submit" value="Submit" > 
</form> 
+0

Supponendo che il captcha sia l'ultima cosa prima del pulsante di invio, si presenterà solo un ritardo per i visitatori. E cosa succede se javascript è disabilitato? – jeroen

+1

@jeroen Le persone con javascript disabilitato sono un caso limite che sono disposto a rinunciare per evitare spam bot. –

+1

Il metodo è effettivamente sicuro? Un bot spam non può ancora inviare il modulo senza un pulsante di invio di alcun tipo? –

risposta

60

ho fatto la stessa cosa sul mio sito di test. tuttavia, ho usato un pulsante invece di inviare, quindi qui:

è necessario aggiungere la proprietà data-callback="enableBtn" proprietà di callback dei dati esegue la funzione specificata dopo l'esecuzione di recaptcha.

<div class="g-recaptcha" data-sitekey="############-#####" data-callback="enableBtn"></div> 

e impostare l'id del pulsante a qualunque id che si desidera:

<input type="button" value="Submit" id="button1"> 

al caricamento della pagina/modulo di carico di disattivare il tasto

document.getElementById("button1").disabled = true; 

poi su javascript fare un funzione per abilitare il pulsante

function enableBtn(){ 
    document.getElementById("button1").disabled = false; 
    } 

spero che aiuti.

+1

Correzione minore (rimuovere le parentesi dopo il nome della funzione): '

' – Caedmon

+1

@Caedmon corretto .. grazie per averlo menzionato. –

+3

@ panda.o24 Davvero utile e questo funziona per me. Un po 'confuso però. Il captcha è già completamente verificato quando viene richiamata la richiamata? In tal caso, qual è lo scopo della chiave segreta che ti viene rilasciata quando ti registri? Supponevo che da qualche parte nel callback Javascript sarebbe stata necessaria una chiamata Ajax a Google? Ho sbagliato? – ifinlay