0
  1. 観測可能なフィールドにバインドされていないノックアウト テンプレートに「div」要素 (recaptchaDiv) があります。<div id="recaptchaDiv"></div>
  2. 一方、サードパーティのライブラリでこの「div」を更新します。特に、これは google recaptcha です。これは私のコードです:

    Recaptcha.create("[my private key]", "recaptchaDiv", { theme: "clean", callback: Recaptcha.ToTest });

そして、それは機能しません(何も表示されません)。

私が知っていること:

  1. FF コンソールでの試行: $("#recaptchaDiv").html() - 予想される html コードが表示されますが、ブラウザーで表示できません。

私が試したこと:

  1. recaptchaDiv をテンプレートの外に移動すると機能します: ブラウザでキャプチャを確認できます
  2. html プロパティに recaptchaDiv をバインドするには:

    テンプレートで:

    <div id="recaptchaDiv" data-bind="html: recaptcha"></div>

    モデルで:

    Recaptcha.create("[my private key]", "recaptchaDiv", { theme: "clean", callback: Recaptcha.ToTest }); recaptcha($("#recaptchaDiv").html());

そして、それは機能しません

(document.getElementById で jquery を置き換えても役に立ちません)

どんな助けでも大歓迎です!

前もって感謝します。

4

1 に答える 1

0

オブザーバブルが最初に適切に機能していることを確認しましたか? recaptcha("foo") のようなテスト文字列を試して、レンダリングされることを確認してください。

次に、recaptcha が非同期である可能性はありますか? その場合、recaptcha のコールバックで監視可能な値を設定する必要があります (これで問題ありません)。

EDIT:ドキュメントによると、recaptchaエリアが作成されるとコールバックが発生するため、そのコールバックでHTMLを取得する必要があります。これを試して:

Recaptcha.create("[my private key]", "recaptchaDiv", { theme: "clean", callback: function() {
  //the callback
  recaptcha($("#recaptchaDiv").html());
  Recaptcha.ToTest();
} });
于 2012-10-11T16:12:01.790 に答える