我的 Rails 应用程序中有一个 Ajax 表单,其中包含 Ambethia Recaptcha gem 中的助手提供的 Recaptcha 标记:
recaptcha_tags :ajax => true
提交时,表单会触发一个创建操作,该操作以包含以下内容的 create.js.erb 进行响应:
$('#message-form').replaceWith("<%= escape_javascript(render('message')) %>");
“消息”部分包含最初呈现的相同表单标记,包括 recaptcha_tags,但如果此时验证中出现错误,也可能会显示。
在 Firefox 中,表单会重新呈现并显示刷新的验证码。但由于某种原因,在 Webkit 浏览器(Safari 和 Chrome)中,'dynamic_recaptcha' Recaptcha 元素被清空,好像 Recaptcha.create(public_key, element_id) 永远不会被调用。
在 Safari 开发者控制台中,我可以调用 Recaptcha.create(public_key, element_id) 并重新生成验证码。
谁能告诉我这里发生了什么?谢谢。