2015-04-13 6 views

Antwort

12

Sie haben zu verwenden, die reCaptcha Antwort Anruf überprüfen zurück zu finden. Etwas wie folgt aus: <script src='https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit'></script>

var RC2KEY = 'sitekey', 
    doSubmit = false; 

function reCaptchaVerify(response) { 
    if (response === document.querySelector('.g-recaptcha-response').value) { 
     doSubmit = true; 
    } 
} 

function reCaptchaExpired() { 
    /* do something when it expires */ 
} 

function reCaptchaCallback() { 
    /* this must be in the global scope for google to get access */ 
    grecaptcha.render('id', { 
     'sitekey': RC2KEY, 
     'callback': reCaptchaVerify, 
     'expired-callback': reCaptchaExpired 
    }); 
} 

document.forms['form-name'].addEventListener('submit',function(e){ 
    if (doSubmit) { 
     /* submit form or do something else */ 
    } 
}) 
+2

Statt „document.querySelector der Verwendung (‘ g -recaptcha-response '). value "Sie können verwenden" grecaptcha.getResponse() " – kunde

1

Für ParsleyJS Sie werden ein wenig Abhilfe zu tun:

1.Add versteckte Eingabefeld, mit data-parsley-required="true", value = "", wie folgt aus:

<input id="myField" data-parsley-errors-container="#errorContainer" data-parsley-required="true" value="" type="text" style="display:none;"> 

2. Fügen Sie einen Fehlercontainer (direkt unter oder unter Ihrem g-recaptcha div) hinzu:

<span id='errorContainer'></span> 

3.Add diese einfache Funktion irgendwo in Ihrem js Code:

function recaptchaCallback() { 
    document.getElementById('myField').value = 'nonEmpty'; 
} 

4.Add das Attribut data-callback mit dem Wert der benutzerdefinierten Funktion.

<div class="g-recaptcha" data-sitekey="***" data-callback="recaptchaCallback"></div>