Googles recaptcha нарушает проверку HTML 5 - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть форма с проверкой HTML 5, которая работает нормально.Когда пользователь нажимает <input type="submit">, проверка запускается.

Но я добавляю в нее Google recaptcha, проверка не запускается компоновщиком.Есть предложения?

<input type="submit" class="g-recaptcha btn btn-info pull-right" data-sitekey="*`***************************************" data-callback="YourOnSubmitFn">

<script src="https://www.google.com/recaptcha/api.js"></script>
<script>
function YourOnSubmitFn(token) {
  document.getElementById('contact').submit();
}
</script>

1 Ответ

0 голосов
/ 02 декабря 2018

Существует обходной путь здесь , и проблема обсуждается также в github .

обходной путь с использованием jquery:

JS :

$('#form-contact').submit(function (event) {
    event.preventDefault();
    grecaptcha.reset();
    grecaptcha.execute();
  });

function formSubmit(response) {
  // submit the form which now includes a g-recaptcha-response input
}

HTML :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.google.com/recaptcha/api.js"></script>
<form action="?">
  <div class="g-recaptcha" 
       data-sitekey="your-key"
       data-size="invisible"
       data-callback="formSubmit">
  </div>
  <button type="submit">Submit</button>
</form>

В чистом формате JS вы можете прослушать форму, отправленную таким образом :

var ele = /*Your Form Element*/;
if(ele.addEventListener){
    ele.addEventListener("submit", callback, false);  //Modern browsers
}else if(ele.attachEvent){
    ele.attachEvent('onsubmit', callback);            //Old IE
}
...