【问题标题】:Recaptcha won't render using sfFormExtraPlugin and JQuery Dialog (lightbox)Recaptcha 不会使用 sfFormExtraPlugin 和 JQuery 对话框(灯箱)呈现
【发布时间】:2011-05-23 16:44:48
【问题描述】:

早上。我有一个在 jquery 对话框(灯箱)内呈现的表单,目前正在尝试将 recaptcha 实现为表单的一部分。因为我使用的是 symfony 框架,所以我可以使用 sfFormExtraPlugin,它包含一个 recaptcha 小部件。如果我作为原始页面的一部分进行回显,则此小部件呈现良好,但在 jquery 对话框内时不会呈现。

经过一番调查,我发现 recaptcha 创建的脚本类似于以下内容:

var RecaptchaState = {
    site : '6Let7r0SAAAAAJFp77tW4gRze7r5y89Cql_msPcm',
    challenge : '03AHJ_VusnO7jeI3VF-cHgOIv9RY9RIpYl2QWea_LULIdL8xrM9PZdcZZ7I9gFf4gSbr1fxGCSQjQZPJQ1sa6p1oEI9U_nkU8f2SjczxjH6nzmy43Q-m_8rnxWhhRUIDa7iTPEwo4-dwi-FipyMHsSAz-nE5yfFQfZog',
    is_incorrect : false,
    programming_error : '',
    error_message : '',
    server : 'http://www.google.com/recaptcha/api/',
    timeout : 18000
};

document.write('<scr'+'ipt type="text/javascript" s'+'rc="' + RecaptchaState.server + 'js/recaptcha.js"></scr'+'ipt>');

我认为问题在于 document.write,b/c 在 jquery 对话框中调用 javascript 与实际文档相比,因此 document.write 无法按预期工作。

想法?

-- 编辑--

在我的blog 上发布了最终解决方案,我会在这里发布,但它相当复杂。

【问题讨论】:

  • 如果您的灯箱中充满了 AJAX 请求的响应,则响应中的 javascript 可能不会被执行...您能告诉我们您的灯箱是如何工作的吗?另外,您能否向我们展示您在使用 Firebug 检查小部件时可以看到的 html?
  • @greg0ire:你是对的。它是 b/c document.write js 没有被执行。完成后我会发布我的结果。我得到了灯箱来呈现 recaptcha 小部件,现在只是在进行验证。
  • 通过编辑发布了最终解决方案的链接。感谢您的回复。

标签: jquery symfony1 dialog recaptcha


【解决方案1】:

正如 OP 编辑​​中提到的,我终于找到了解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多