recaptcha - 如何在单个页面上显示多个recaptchas?

标签 recaptcha captcha

我在一个页面上有 2 个表单。其中一种形式一直显示 Recaptcha。另一个应该仅在某个事件(例如最大化登录尝试)之后显示 Recaptcha。因此,有时我需要 2 个 Recaptchas 才能出现在同一页面上。这可能吗?我知道我可能两个都可以用一个,但是我的布局方式,我更喜欢有 2 个。谢谢。

更新:好吧,我想这可能是不可能的。有人可以推荐另一个捕获库与 reCaptcha 一起使用吗?我真的希望能够在同一页面上有 2 个验证码。

更新 2:如果我将每个表单都放在 iframe 中会怎样?这是一个可以接受的解决方案吗?

最佳答案

使用当前版本的 Recaptcha (reCAPTCHA API version 2.0),您可以在一页上拥有多个 Recaptcha。

无需克隆 Recaptcha,也无需尝试解决问题。您只需输入多个 <div> Recaptchas 的元素并在其中显式呈现 Recaptchas。

使用 the Google Recaptcha API 很容易.这是示例 HTML 代码:

<form>
    <h1>Form 1</h1>
    <div><input type="text" name="field1" placeholder="field1"></div>
    <div><input type="text" name="field2" placeholder="field2"></div>
    <div id="RecaptchaField1"></div>
    <div><input type="submit"></div>
</form>

<form>
    <h1>Form 2</h1>
    <div><input type="text" name="field3" placeholder="field3"></div>
    <div><input type="text" name="field4" placeholder="field4"></div>
    <div id="RecaptchaField2"></div>
    <div><input type="submit"></div>
</form>

在您的 Javascript 代码中,您必须为 Recaptcha 定义一个回调函数:

<script type="text/javascript">
    var CaptchaCallback = function() {
        grecaptcha.render('RecaptchaField1', {'sitekey' : '6Lc_your_site_key'});
        grecaptcha.render('RecaptchaField2', {'sitekey' : '6Lc_your_site_key'});
    };
</script>

在此之后,您的 Recaptcha 脚本 URL 应如下所示:

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

或者,您可以提供一个类名并使用您的类选择器循环这些元素并调用 .render(),而不是为您的 Recaptcha 字段提供 ID。 .

关于recaptcha - 如何在单个页面上显示多个recaptchas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241947/

相关文章:

带有 recaptcha 的 PHP 表单

javascript - 验证码错误 400

javascript - 验证 NoCaptcha ReCaptcha

java - cookie 被阻止时 JCaptcha 失败

php - CodeIgniter 验证码验证

javascript - 如何在移动设备上禁用 reCAPTCHA 的预测文本?

php - 垃圾邮件打败了我所有的验证码

python - 在 Heroku 上托管时,Selenium 应用程序重定向到 Cloudflare 页面

php - 新的 Google ReCaptcha 未发布/接收 'g-recaptcha-response'

javascript - 谷歌验证码显示扭曲