Mojolicious и reCAPTCHAv2 в popup

328
16 января 2018, 14:39

Здравствуйте! Имеется такая ситуация: по нажатию кнопки "отправить" срабатывает обработчик чекера-форм, если всё верно -- вызывается всплывающее окно с гуглокапчей, реализовано через плагин reCAPTCHAv2, при вверно введёной капче вызывается функция которая отправляет форму -- при обработке результата на бакенде получаю ошибку: missing-input-response.

Мой код

    #### в шаблоне Anket.html.ep
% layout 'default';
% title 'Заполнить заявление на бесплатный протез';
<script src="http://parsleyjs.org/dist/parsley.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
   $('#anket').parsley().on('field:validated', function() {
     var ok = $('.parsley-error').length === 0;
     $('.callout-info').toggleClass('uk-hidden', !ok);
     $('.callout-warning').toggleClass('uk-hidden', ok);
   })
              .on('form:submit', function() {
                $('#captcha').bPopup();
        return false;// Don't submit form
          });
});
</script>
...
  <form method="POST" id="anket" enctype="multipart/form-data">
...
    <div id="captcha" class="captcha">
      <span id="close-c" class="close-c">X</span>
      <center><h2>Введите гуглокаптчу для отправки формы</h2></center>
      <%= $captcha %>
    </div>
  </form>
  <script>
    function formSend() {
    var form = document.getElementsByTagName("form");
    form[0].submit();
    };
  </script>
  <script src="/js/jquery.bpopup.min.js"></script>
#### обработчик post зароса в Controller/Pages.pm
sub anket_add {
    my $self = shift;
    if ($self->recaptcha_verify) {
    say "окей!";
...
    } else {
    if (my $err = $self->recaptcha_get_errors) {
        foreach my $e (@{$err}) {
        say "ERROR $e";
        }
        $self->redirect_to('error');
    }
    $self->redirect_to('error');
    }
}
### инициалзиация lib/Project.pm
  $self->plugin( ReCAPTCHAv2 => {
      sitekey => 'mykey',
      secret  => 'mysecret',
      theme => 'light',
      callback => "formSend"});

Я догадываюсь, что дело либо в popup либо в отправке формы javascript'ом сразу по каллбаку, но в чём именно дело и как разрешить ситуацию?

READ ALSO
Удаление повторного div&#39;а по имени класса

Удаление повторного div'а по имени класса

Есть два <div> одинакового классаНа странице один выше другого

227
Как добавить аргументы в функцию

Как добавить аргументы в функцию

Как сделать так, чтобы select принимал в функции query() в переменной result результат функции filterIn() и фильтровал по своим аргументам 'name', 'gender', 'email'Не...

260
Как создать массив DOM елементов?

Как создать массив DOM елементов?

Мне нужно создать массив классаtab_p, потом получить каждого из них высоту и назначить всем элементам данного класса наибольшую высоту

246
Не срабатывает счетчик score

Не срабатывает счетчик score

Не срабатывает счетчик scoreТ

239