0

我正在尝试以我的一种形式实现 recaptcha。我在我的表单中使用下面的代码

<script type="text/javascript"
  src="http://www.google.com/recaptcha/api/challenge?k=your_public_key">
</script>
<noscript>
  <iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key"
     height="300" width="500" frameborder="0"></iframe><br>
   <textarea name="recaptcha_challenge_field" rows="3" cols="40">
   </textarea>
   <input type="hidden" name="recaptcha_response_field"
     value="manual_challenge">
</noscript>

如果我点击包含recaptcha 的页面的链接,它不会显示。如果我然后使用浏览器重新加载页面,则会显示它。

我发现这是由于使用了 turbolinks。

我知道放置data-no-turbolink在body标签中可以防止该页面的turbolinks并且这有效,但我不确定这是否是正确的方法,如果我想为整个页面禁用它只是为了让recpatcha工作(似乎很hacky )。

我还将recaptcha代码包含在一个div中并放入data-no-turbolink标签,但这不起作用。

有没有办法只为带有recaptcha的表单禁用turbolinks,或者我应该尝试另一种方法来解决这个问题?

4

2 回答 2

4

我遇到过同样的问题。这是:https ://github.com/ambethia/recaptcha/issues/83

禁用整个页面的 turbolinks。

<%= link_to "Sign up", new_registration_path(resource_name), "data-no-turbolink" => true %><br />
于 2013-09-08T19:54:09.490 回答
1

它可能关注的对象 - 根据 github 上的错误报告( http://github.com/ambethia/recaptcha/issues/83#issuecomment-30019798),还有一个简单的 ajax 修复。

只需使用:

<%= recaptcha_tags ajax: true %> 

对我来说工作得很好!

于 2015-02-26T09:19:07.700 回答