如何将表单从谷歌验证码 v2 升级到验证码 v3

时间:2021-04-13 20:48:19

标签: javascript html jquery recaptcha captcha

我在一个页面上有两个表单,我目前使用的是 google captcha v2,但我想将表单升级到 captcha v3,有没有一种简单的方法可以做到这一点。

从我读到的文档中,使用此代码可以工作,但它仅适用于一种形式 它忽略了我第一次点击检查表单上的所有必填字段。

<script>
      function onClick(e) {
        e.preventDefault();
        grecaptcha.ready(function() {
          grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) {
              // Add your logic to submit to your backend server here.
          });
        });
      }
  </script>

<form role='form' method='POST' id='myForm' enctype='multipart/form-data' class='hiddenContent myForm2'>
    <center><div id='myCaptchaDiv1'></div></center> 
    <div class='form-row'> 
        <div class='col-12' id='btn-subtmit'>  
          <button class='btn btn-primary btn-controls'>Submit <i class='fas fa-check'></i></button>
        </div>
    </div>    
</form>


<form role='form' method='POST' id='myForm' enctype='multipart/form-data' class='hiddenContent myForm2'>
    <center><div id='myCaptchaDiv2'></div></center> 
    <div class='form-row'> 
        <div class='col-12' id='btn-subtmit'>  
          <button class='btn btn-primary btn-controls'>Submit <i class='fas fa-check'></i></button>
        </div>
    </div>    
</form>

    <script type="text/javascript">
    var CaptchaCallback = function() {
        grecaptcha.render('myCaptchaDiv1', {'sitekey' : 'myoid'});
        grecaptcha.render('myCaptchaDiv2', {'sitekey' : 'myoid'});
    };
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit" async defer></script>

1 个答案:

答案 0 :(得分:0)

您是否为两个表单都添加了事件侦听器?表单必须具有唯一的 ID(您将它们都发布为“myForm”),并确保您像这样注册 all_values = worksheet.get_all_values() row_count = len(all_values) sheet_range = "'{}'!{row}:{row}".format(worksheet.title, row=row_count+1+insert_count) values = { "Name": "Ford", "Age": "34", "Color": 'Blue' } worksheet.append_row(sheet_range, values) 回调:

onClick

您可能要做的任何表单验证(检查必填字段),您都可以之前 const form1 = document.getElementById('myForm1'); const form2 = document.getElementById('myForm2'); form1.addEventListener('submit', onClick); form2.addEventListener('submit', onClick); 。一个例子:

grecaptcha.ready(...)
相关问题