Ambethia Recaptcha无法在Webkit浏览器中提交Ajax表单后重新提交

问题描述 投票:2回答:4

我在Rails应用程序中有一个Ajax表单,其中包含由Ambethia Recaptcha gem中的助手提供的Recaptcha标记:

recaptcha_tags :ajax => true

在提交时,表单将命中一个create操作,该操作将通过包含以下内容的create.js.erb进行响应:

$('#message-form').replaceWith("<%= escape_javascript(render('message')) %>");

'message'部分包含最初呈现的相同表单标记,包括recaptcha_tags,但此时也可能显示验证中是否有错误。

[在Firefox中,表格将重新呈现并显示刷新的验证码。但是由于某种原因,在Webkit浏览器(Safari和Chrome)中,'dynamic_recaptcha'Recaptcha元素将被清空,好像从未调用Recaptcha.create(public_key,element_id)一样。

在Safari开发者控制台中,我可以调用Recaptcha.create(public_key,element_id)并重新生成验证码。

谁能告诉我这是怎么回事?谢谢。

jquery ruby-on-rails webkit recaptcha
4个回答
4
投票

我有同样的问题,无法使其与Webkit浏览器中的recaptcha_tags一起使用。

最后,我遵循了官方指南,并像这样写(在HAML中....]


  1. 在版式标题标签中:

    = javascript_include_tag "http://api.recaptcha.net/js/recaptcha_ajax.js"
    
  2. 在已渲染的部分中通过ajax:

    #dynamic_recaptcha
    :javascript
      Recaptcha.create('YOURPLUBLICKEY', document.getElementById('dynamic_recaptcha') , '')
    

http://code.google.com/apis/recaptcha/docs/display.html


1
投票

[如果有人遇到这个问题,阿贾克斯(Ajax):真正的诀窍就是我。我正在使用Rails 3.2.13和Recaptcha 0.3.5

=recaptcha_tags(display: {theme: 'clean'}, ajax: true)

0
投票

我用以下方法解决:

将运行时不会由ajax加载的脚本放在头部:

<script type="text/javascript" src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>

可选主题:

<script type="text/javascript">var RecaptchaOptions = {"theme":"clean"};</script>

然后在true处使用evalScripts选项调用Ajax.Updater:

new Ajax.Updater('example_div', '/example', { parameters: {text: $F('example_text')}, evalScripts: 'true'});

0
投票
  1. 在html文件中。

© www.soinside.com 2019 - 2024. All rights reserved.