captcha.html.twig 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. {% extends "forms/field.html.twig" %}
  2. {% block input %}
  3. <script>
  4. var captchaOnloadCallback = function captchaOnloadCallback() {
  5. grecaptcha.render('g-recaptcha', {
  6. 'sitekey': "{{field.recaptcha_site_key ?: field.recaptcha_site_key ?: config.plugins.form.recaptcha.site_key }}",
  7. 'callback': captchaValidatedCallback,
  8. 'expired-callback': captchaExpiredCallback
  9. });
  10. };
  11. var captchaValidatedCallback = function captchaValidatedCallback() {
  12. };
  13. var captchaExpiredCallback = function captchaExpiredCallback() {
  14. grecaptcha.reset();
  15. };
  16. $('form').submit(function(event) {
  17. if ($(this).has("#g-recaptcha-response").length && $("#g-recaptcha-response").val() === '') {
  18. event.preventDefault();
  19. alert("{{grav.language.translate('PLUGIN_FORM.ERROR_VALIDATING_CAPTCHA')}}");
  20. }
  21. });
  22. </script>
  23. <script src="https://www.google.com/recaptcha/api.js?onload=captchaOnloadCallback&render=explicit&hl={{ grav.language.language }}"
  24. async defer>
  25. </script>
  26. <div class="g-recaptcha" id="g-recaptcha"></div>
  27. {% endblock %}