Google reCaptcha с петрушкой не работает

Привет, у меня есть страница, на которой я хотел бы, чтобы recaptcha появлялась после проверки формы петрушки, но сначала выполняется проверка recaptcha, затем проверка формы снова появляется recaptcha

Любая помощь будет высоко оценен.

<html>
<head>
  <title>reCAPTCHA demo: Simple page</title>
  <script src = "http://parsleyjs.org/dist/parsley.js"></script>
  <script src = "https://www.google.com/recaptcha/api.js"></script>
</head>

<body>
  <form action = "?" method = "POST" data-parsley-validate id = "contactForm">
    <input type = "email" data-parsley-required />
    <div class = "g-recaptcha" data-sitekey = "my_site_key" 
         data-callback = "captchaCallback"></div>
    <br/>
    <input type = "submit" value = "Submit">
  </form>
</body>
</html>

<script>
 $('#contactForm').parsley().on('field:validated', function() {
        var ok = $('#contactForm').find('.parsley-error').length === 0;
        $('#contactForm').find('.bs-callout-warning').toggleClass('hidden', ok);
        $('#contactForm .contact-success-msg').addClass('hide');

    })
        .on('form:submit', function() {
    //ajax function
}
   });
</script>

<script>
function hello() {
        var a = $('form');
        $(a).each(function() {
            var b = $(this).find('.submit-contact-form');
            $(b).unbind().click(function(e) {
                e.preventDefault();

                grecaptcha.reset();
                grecaptcha.execute();
                abc = $(this);

            });
        });
}
</script>
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
618
2

Ответы 2

просто добавьте это в форму.

data-parsley-excluded = "input [name = g-recaptcha-response], input [id = recaptcha-token]"

Вот как я решил это в реализации сценария cgi:

<form id = "form" data-parsley-validate = "" method=POST ACTION = "">

<!--g-recaptcha-->
<div class = "g-recaptcha" data-sitekey = "YOUR-SITE-KEY" data-callback = "recaptchaCallback"></div>

<!-- g-captcha/parsely error notice -->
<input id = "myField" data-parsley-errors-container = "#errorContainer" data-parsley-required = "true"  data-parsley-error-message = "Captcha required" value = "" type = "text" style = "display:none;"><span id='errorContainer'></span>

<!--submit-->
<input type = "submit" name = "submit" value = "SUBSCRIBE">


</form>


<script src='https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit'></script>



<script>
var RC2KEY = 'YOUR-SITE-KEY',
    doSubmit = false;

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

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 */
    }
})
</script>

Другие вопросы по теме