Templates 更新由第三方库更改的淘汰模板中的元素 我在淘汰模板中有'div'元素(recaptchaDiv),它没有绑定到任何可观察的字段:

Templates 更新由第三方库更改的淘汰模板中的元素 我在淘汰模板中有'div'元素(recaptchaDiv),它没有绑定到任何可观察的字段:,templates,knockout.js,refresh,recaptcha,party,Templates,Knockout.js,Refresh,Recaptcha,Party,另一方面,我通过第三方库更新这个“div”。特别是,这是谷歌recaptcha。这是我的代码: Recaptcha.create(“[我的私钥]”,“recaptchaDiv”{ 主题:“清洁”, 回调:Recaptcha.ToTest }); 它不起作用(我什么也看不见) 据我所知: 在FF控制台上尝试:$(“#recaptchaDiv”).html()-它显示了预期的html代码,我只是在浏览器中看不到它 我尝试的是: 若要将recaptchaDiv移到模板外并使其工作,请执行以下操作:我可

另一方面,我通过第三方库更新这个“div”。特别是,这是谷歌recaptcha。这是我的代码:

Recaptcha.create(“[我的私钥]”,“recaptchaDiv”{
主题:“清洁”,
回调:Recaptcha.ToTest
});

它不起作用(我什么也看不见)

据我所知:

  • 在FF控制台上尝试:$(“#recaptchaDiv”).html()-它显示了预期的html代码,我只是在浏览器中看不到它
  • 我尝试的是:

  • 若要将recaptchaDiv移到模板外并使其工作,请执行以下操作:我可以在浏览器中看到验证码
  • 要在html属性上绑定recaptchaDiv,请执行以下操作:

    在模板中:

    在模型中:

    Recaptcha.create(“[我的私钥]”,“recaptchaDiv”{
    主题:“清洁”,
    回调:Recaptcha.ToTest
    });
    recaptcha($(“#recaptchaDiv”).html()

  • 但它不起作用

    (替换document.getElementById上的jquery没有帮助)

    任何帮助都将不胜感激


    提前感谢您。

    您是否确保您的可观测设备首先工作正常?尝试一个测试字符串,如recaptcha(“foo”),以确保它呈现

    接下来,recaptcha是否可能是异步的?在这种情况下,您必须在recaptcha的回调中设置可观察值(这应该可以)

    编辑:根据文档,一旦创建了recaptcha区域,就会触发回调,因此您必须在回调中获取它的HTML。试试这个:

    Recaptcha.create("[my private key]", "recaptchaDiv", { theme: "clean", callback: function() {
      //the callback
      recaptcha($("#recaptchaDiv").html());
      Recaptcha.ToTest();
    } });
    
    1.是的,我试过任何“假”值。recaptcha(“测试字符串”)工作正常。2.关于异步调用:我不确定,但我在谷歌文档中没有找到这样的功能