错误:ReCAPTCHA占位符元素必须为空

Nir*_*shi 49 javascript jquery recaptcha laravel-4.2

我正在使用recaptcha和我的laravel应用程序.

我只是想使用jquery检查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>
Run Code Online (Sandbox Code Playgroud)

我在浏览器控制台中收到此错误,表单将被提交.

Error: ReCAPTCHA placeholder element must be empty
Run Code Online (Sandbox Code Playgroud)

Waq*_*ary 120

您正在加载google recaptcha库两次.

https://www.google.com/recaptcha/api.js

  • 如何防止脚本被加载两次?因为在Ruby中呈现'<%= recaptcha_tags%>'时默认加载它. (3认同)

小智 6

您正在加载库2次

选择

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

要么

     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
Run Code Online (Sandbox Code Playgroud)


way*_*vin 6

当我尝试在非空元素上渲染 reCaptcha 时出现此错误

<div class="g-recaptcha"  data-sitekey="{{ env('GOOGLE_RECAPTCHA_SITE_KEY') }}">
      <div class="form-group">some element inside reCaptcha container</div>
</div>
Run Code Online (Sandbox Code Playgroud)

reCaptcha 占位符元素必须为空

<div class="g-recaptcha"  data-sitekey="{{ env('GOOGLE_RECAPTCHA_SITE_KEY') }}"></div>
Run Code Online (Sandbox Code Playgroud)