2017-10-03 4 views
0

J'ai un formulaire avec Recaptcha activé. Si l'utilisateur ne vérifie pas le Recaptcha et les hits soumis, il est invité à vérifier par un message d'erreur. Puis ils vérifient mais le bouton de soumission reste désactivé et le formulaire ne peut pas être soumis. Comment puis-je supprimer l'attribut désactivé une fois que Recapthca est vérifié sans que le formulaire ne soit actualisé.Désactiver soumettre une fois Recaptcha est vérifiée

Mon code à ce jour:

$(".elq-form").validate({ 

    submitHandler: function (form) { 
    var captcha = grecaptcha.render('evbox-recaptcha', {'sitekey' : 
    'my_key'}); 
    var response = grecaptcha.getResponse(captcha); 

    //recaptcha failed validation 
    if (response.length === 0) { 
     grecaptcha.reset(captcha); 
     $('#recaptcha-error').show(); 
     return false; 
    } 


    //recaptcha passed validation 
    else { 
     $('#recaptcha-error').hide(); 
     $('#submit').attr("disabled",false); 
     return true; 
    } 
    } 
}); 


<p class="field-p"> 
        <div id="recaptcha-error" style="display: none"> 
        <p>[[%site.text.recaptcha? &topic=`default` &namespace=`site`]]</p> 
        </div> 
        <div id="evbox-recaptcha" class="g-recaptcha" data-sitekey="my_key"></div> 
        <input id="submit" name="submit" type="submit" value="[[%site.button.submit? &topic=`default` &namespace=`site`]]" class="submit-button button button__primary" /> 
       </p> 

Répondre

0

Je pense que vous devriez vérifier les points suivants:

var captcha = grecaptcha.render('evbox-recaptcha', {'sitekey' : 'my_key'}); 
var response = grecaptcha.getResponse(captcha); 

//recaptcha failed validation 
if (response.length === 0) { 
    grecaptcha.reset(captcha); 
    $('#recaptcha-error').show(); 
    return false; 
} 
référence

: reCAPTCHA V2 | Google developers

+0

Non, pas de différence – madameFerry

+0

Vérifiez la modification de réponse plz. – AboElnouR

+0

Ne fonctionne toujours pas. Je dois actualiser la page et remplir le formulaire. Pas une super expérience utilisateur :( – madameFerry

0

Avez-vous essayé "attr" au lieu de "prop"?

$('#submit').attr("disabled",false); 

Ref: .prop() vs .attr()

+0

Merci noix pas de changement. – madameFerry