javascript - Google Recaptcha 启用禁用的提交按钮

标签 javascript recaptcha

我正在使用 reCaptcha v2 invisible。我有一个带有 disabled 提交按钮的简单表单。 Google reCAPTCHA 正在启用我禁用的按钮。

<script src="https://www.google.com/recaptcha/api.js"></script>

<form action="/action_page.php" id="referral-form">
    First name:
    <br>
    <input type="text" name="firstname">
    <br>
    Last name:
    <br>
    <input type="text" name="lastname">
    <br>
    <input type="submit" id="form-submit-btn" disabled="disabled" class="g-recaptcha" data-callback='onSubmit' data-sitekey="***************" value="Submit">
</form>

function onSubmit() {
    if (grecaptcha.getResponse() !== "") {
        $('#referral-form').submit();
    }
        grecaptcha.reset();
}

当我删除 class="g-recaptcha" 时,按钮被正确禁用。

最佳答案

正如我在上面的评论中所说,您可以在呈现 Invisible Recaptcha 时使用回调。

试试这个代码,让我知道它是否有效:

<!doctype html>
<html>
  <head>
    <script>
        var onSubmit = function(token) {
            console.log(token);
            // You can check token here and decide what to do
        };

        var onloadCallback = function() {
            grecaptcha.render('form-submit-btn', {
                'sitekey' : '***************',
                'callback' : onSubmit
            });
            document.getElementById('form-submit-btn').disabled = true;
        };

        /////
        // code to enable your button when you have content in the inputs
        /////
    </script>
  </head>
  <body>
      <form action="/action_page.php" id="referral-form">
          First name:
         <br>
         <input type="text" name="firstname">
         <br>
         Last name:
         <br>
         <input type="text" name="lastname">
         <br>
         <input type="submit" id="form-submit-btn" class="g-recaptcha" value="Submit">
      </form>

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

我根据您的代码和 this example 创建了这个示例在 Google Recaptcha 的文档中。

关于javascript - Google Recaptcha 启用禁用的提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59546714/

相关文章:

javascript - AngularJs : How to get ng-repeat input/checkbox values on form submit?

iphone - 使用 SDK 的 iPhone 应用程序上的 reCaptcha

jquery - Google reCaptcha 未在客户端验证

reactjs - 更改页面时 react-google-recaptcha 问题

captcha - 将 Google reCaptcha 版本 1 从 2 切换

recaptcha - 如何将隐形 Recaptcha 徽章移动到页面上的另一个位置

javascript - 如何使用 Firebase JS SDK 版本 9 通过 ID 查找文档?

javascript - Javascript中的搜索树算法,存储了所有可能的路线?

javascript - Django/jQuery 在管理中级联选择框

javascript - IE7::SCRIPT1014: 无效字符