在同一页面上验证多个recaptcha(V2)

cve*_*tan 10 javascript jquery recaptcha

当我在同一页面上有多个时,我想知道如何验证Recaptcha客户端.我找到了这个/sf/answers/2002556041/,当我有一个时就可以了.

但是现在我在每个页面上都有一个站点的foooter,并且在一些注册表单中有一个,所以有可能同时主题的apear.

我很感激任何消化.谢谢.:)

ImB*_*mBS 15

最简单的方法来验证尽可能多的g-captcha验证

首先,在</head>标记之前包含api.js,如下所示

<script src="https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit"></script>
Run Code Online (Sandbox Code Playgroud)

在HTML中添加此代码

<div class="g-recaptcha-contact" data-sitekey="Your Site Key" id="RecaptchaField2"></div>
<input type="hidden" class="hiddenRecaptcha" name="ct_hiddenRecaptcha" id="ct_hiddenRecaptcha">

<div class="g-recaptcha-quote" data-sitekey="Your Site Key" id="RecaptchaField1"></div>
<input type="hidden" class="hiddenRecaptcha" name="qt_hiddenRecaptcha" id="qt_hiddenRecaptcha">
Run Code Online (Sandbox Code Playgroud)

在带有<script>标记的页脚中添加此代码后

var CaptchaCallback = function() {
    var widgetId1;
    var widgetId2;
    widgetId1 = grecaptcha.render('RecaptchaField1', {'sitekey' : 'Your Site Key', 'callback' : correctCaptcha_quote});
    widgetId2 = grecaptcha.render('RecaptchaField2', {'sitekey' : 'Your Site Key', 'callback' : correctCaptcha_contact});
};
var correctCaptcha_quote = function(response) {
    $("#qt_hiddenRecaptcha").val(response);
};
var correctCaptcha_contact = function(response) {
    $("#ct_hiddenRecaptcha").val(response);
};
Run Code Online (Sandbox Code Playgroud)

开发人员添加Jquery验证的最后一步很简单,如下所示

$("#form_id").validate({
    ignore: [],
    rules: {
        ct_hiddenRecaptcha: { required: true, },
        qt_hiddenRecaptcha: { required: true, },
    },
});
Run Code Online (Sandbox Code Playgroud)