2016-11-01 10 views
2

同じページに複数のものがある場合、Recaptchaのクライアント側を検証する方法が不思議でした。私はこれを見つけましたhttps://stackoverflow.com/a/28607943/5649602、それは私が1つ持っている場合はOKです。同じページで複数のrecaptcha(V2)を検証する

しかし、私はすべてのページのサイトの詐欺師といくつかの登録フォームの1つを持っているので、同時にテーマの可能性があります。

私はいかなる摂取も感謝します。ありがとう。 :)

+1

以下ごとに – madalinivascu

+0

方法にも問題があってはならないとして、jQueryの検証を追加ターゲット固有の要素ですか?その応答は、登録フォームを確認し、フッターにフォームを作成したものではないことをどのようにして知ることができますか? – cvetan

+0

それぞれのリキャッタに異なるクラスを使用 – madalinivascu

答えて

6

最も簡単な方法は、

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

の下にこのコードを追加につきとして</head>タグの前にあなたがapi.jsを含める限りG-キャプチャが

ファーストを検証する検証しますあなたの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"> 

あなたは<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); 
}; 

と開発者のための最後の簡単なステップでフッターにこのコードを追加した後

$("#form_id").validate({ 
    ignore: [], 
    rules: { 
     ct_hiddenRecaptcha: { required: true, }, 
     qt_hiddenRecaptcha: { required: true, }, 
    }, 
}); 
関連する問題