javascript - 取得 - recaptcha 言語
エラー:ReCAPTCHAプレースホルダ要素は空でなければなりません (5)
私は私のlaravelアプリケーションでrecaptchaを使用しています。
私はちょうどjqueryを使用してform submitでrecaptchaのレスポンスをチェックし、キャプチャを検証する警告をユーザに表示します。
キャプチャがいっぱいになっていなくてもフォームの提出を止めることはできませんでした。
ここに私のコードです。
$('#payuForm').on('submit', function (e) {
var response = grecaptcha.getResponse();
if(response.length == 0 || response == '' || response ===false ) {
alert('Please validate captcha.');
e.preventDefault();
}
});
<div class="captcha">
{{ View::make('recaptcha::display') }}
</div>
ブラウザのコンソールでこのエラーが表示され、フォームが送信されます。
Error: ReCAPTCHA placeholder element must be empty
Googleのrecaptchaライブラリを2回ロードしています。
reCaptchaを空でない要素にレンダリングしようとしたときにこのエラーが発生しました
<div class="g-recaptcha" data-sitekey="{{ env('GOOGLE_RECAPTCHA_SITE_KEY') }}">
<div class="form-group">some element inside reCaptcha container</div>
</div>
reCaptchaプレースホルダ要素は空でなければなりません
<div class="g-recaptcha" data-sitekey="{{ env('GOOGLE_RECAPTCHA_SITE_KEY') }}"></div>
インターネット接続が遅いために同じ問題が発生する可能性があります。
ダイナミックが必要な場合は、ページのキャプチャごとにこれをお試しください:
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
<div class="g-recaptcha"></div>
<script>
var onloadCallback = function() {
//remove old
$('.g-recaptcha').html('');
$('.g-recaptcha').each(function (i, captcha) {
grecaptcha.render(captcha, {
'sitekey' : 'your key'
});
});
};
</script>
しかし、それは遅いです。 最初のページですべての再キャプチャを定義することもできます: https://developers.google.com/recaptcha/docs/display ://developers.google.com/recaptcha/docs/display
WARNING: Tried to load angular more than once.
AngularJsでこのエラーが発生すると、同様にjqueryをチェックできます。