добавить recaptcha к валидации

263
12 сентября 2017, 09:15

Есть функция валидации формы обратной связи. Выгляди так:

jQuery(document).ready(function($) {
        $('.form').submit(function() {
            var formInputs = $(this).find('.validate');
            var errors = '';
                $(formInputs).each(function() {
                if($.trim(this.value) == '') {
                    fieldLabel = $(this).parent().find('span.label-text').html();
                    errors += '- ' + fieldLabel + '\n';
                }
            });
            if(errors.length > 0) {
                alert('Feel:\n\n' + errors);
                return false;
            }
            else
            {
                $('.submit-button').val('Wait please...');
                $('.submit-button').attr('disabled', 'disabled');
                return true;
            } 
            }); 
        }); 

Нужно было в нее добавить recaptcha invisible. Сделал следующим образом:

              ...
                else {
                    $('.submit-button').val('Wait please...');
                    $('.submit-button').attr('disabled', 'disabled');
                function get_action(form) {
                    var v = grecaptcha.getResponse();
                        if(v.length == 0) {
                        grecaptcha.reset(); }
                        else {
                        $.ajax({
                        type: "POST",
                        url: "/reCaptcha.php",
                        data: form.serialize(),
                        dataType: "json",
                        success : function(text){
                        if (text == "success"){
                        formSuccess();
                          } else {
                            formError();
                            submitMSG(false,text); }   }
                 });   } }  
}  });  }); 

reCaptcha.php

<?php
if(isset($_POST['g-recaptcha-response'])) {
    $result = json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6L---7O&response=$_POST["g-recaptcha-response"]&remoteip=$_SERVER["REMOTE_ADDR"]'), TRUE);    
    if($result['success'] == 1) {
        console.log("Ok");   
    } else {
        grecaptcha.reset();
    }
}
?>

Валидация работает, а каптча -нет (можно несколько десятков раз форму отправить, она не появится). Никогда раньше с ней дело не имел. Полагаю, проблема в логике интеграции каптчи. Направьте на путь истинный, пожалуйста.

READ ALSO
Как стилизовать этот input?

Как стилизовать этот input?

Думаю что дело в скрипте

230
Нужно ли использовать css хаки в 2017 году

Нужно ли использовать css хаки в 2017 году

Нужно ли использовать css хаки в 2017 году? Например для border-rarius, border-box, box-shadow и так далее

237
Как навигацию в Фотораме сделать справа?

Как навигацию в Фотораме сделать справа?

По умолчанию она снизу, нашел в документации как сделать сверху, но right, left не работает :(

199