2016-09-01 1 views
1

Ich habe ein Problem mit Google Recaptcha. Ich verwende Ajax, um Formulardaten zu senden, und recaptcha Sitzung läuft ab und Benutzer sollte wieder captcha validieren. Aber wenn einmal überprüft wurde, wird es als checked chechbox angezeigt und Benutzer sollte die Seite neu laden ...Verwenden von Google Recaptcha mit Ajax - nicht wieder laden

Ich benutze PHP-Validierung für Recaptcha-Antwort zu validieren.

Aber was ist die richtige Lösung für recaptcha Nachladen - Ist es in Ordnung, nur js Validierung wie das, oder es gibt eine bessere Lösung hinzuzufügen:

var v = grecaptcha.getResponse(); 

if(v.length == 0) 
{ 
    $('<label class="error captcha_field">This field is required!</label>').insertAfter($(".g- recaptcha").closest('.form-group')); 
    return false; 
} 

Jetzt habe ich versucht, mit dem folgenden Code, aber es zurück js Fehler :

response is not defined

var captcha = grecaptcha.getResponse(); 
if (captcha == 0){ 

    $('<label class="error  captcha_field">'+response.errors.captcha_failed+'</label>').insertAfter($(".g-recaptcha").closest('.form-group')); 
    return false; 
} 

Antwort

0

ich fand Lösung. In Ajax-Antwort lade ich Captcha auf diese Weise neu:

if (window.grecaptcha) { 
    grecaptcha.reset(); 
}