后在导航栏上的按钮,注册第二次点击谷歌的reCAPTCHA消失

问题描述 投票:1回答:1

在我的网站后,注册按钮或home键第二次点击在顶部导航栏中,验证码消失。用户可以注册,无需验资。如何解决它。

<h2>Create Blog</h2>

<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), class: "form-horizontal" ) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.input :username, required: true, autofocus: true, hint: 'no special characters, no numbers only letters [a-z]' %>
    <%= f.input :password, required: true, hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) %>
    <%= f.input :password_confirmation, required: true %>
    <div id="g-recaptcha" class="g-recaptcha" data-sitekey="6LcOGEgUAAAAAOxXmBxxxxxxxx"></div>
  </div>

  <div class="form-actions">
    <%= f.button :submit, "Create Blog", data: { disable_with: "This may take upto 2 minutes... "} %>
  </div>
<% end %>

<%= render "devise/shared/links" %>
<script>
  var captcha_interval;
  var myCallback=function(){
    document.getElementsByName('commit')[0].disabled=false;
  };
  var onloadCallback = function() {
    document.getElementsByName('commit')[0].disabled=true;
    grecaptcha.render(
     document.getElementById('g-recaptcha'),
     {
       callback: myCallback,
       sitekey: "6LcOGEgUAAAAAOxXmBVgxxxxxx"
     });
  };
</script>
ruby-on-rails ruby recaptcha
1个回答
0
投票

<html>
  <head>
    <title>reCAPTCHA demo: Explicit render for multiple widgets</title>
    <script type="text/javascript">
      var verifyCallback = function(response) {
        alert(response);
      };
      var onloadCallback = function() {
        grecaptcha.render('example3', {
          'sitekey' : '6LcOGEgUAAAAAOxXmBVgxxxxxx',
          'callback' : verifyCallback,
          'theme' : 'dark'
        });
      };
    </script>
  </head>
  <body>
    <!-- POSTs back to the page's URL upon submit with a g-recaptcha-response POST parameter. -->
    <form action="?" method="POST">
      <div id="example3"></div>
      <br>
      <input type="submit" value="Submit">
    </form>
    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
        async defer>
    </script>
  </body>
</html>

按照参考google-captcha,你缺少的

    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
        async defer>
    </script>

之后的形式。

请尝试表格后加入,让我知道

© www.soinside.com 2019 - 2024. All rights reserved.