5

JQueryAJAXコールバックでAjaxを自動的に更新させようとしている時間の悪魔がいます。reCaptchaの検証直後に更新されるメッセージが投稿されたコメントボックスがあります。誰かがすぐに別のコメントを追加したい場合に備えて、reCaptchaが自動的に更新されると便利です。これが私のreturn関数です:

 $.post(url, formData, function(data) {
        if (returnString.match(/^Error:/)) {
          $("#interactionResults").html(data).show().fadeOut(6000);
        }
        else if (postNumber == 0) {
          $('#newCommentDisplay').html(returnString).show();
          $.post("http://www.google.com/recaptcha/api", "Recaptcha:reload()");   
        }

私が使用するとき:

$.post("http://www.google.com/recaptcha/api", "Recaptcha:reload()"); 

エラーが発生します:

XMLHttpRequest cannot load http://www.google.com/recaptcha/api. Origin http://localhost:8888 is not allowed by Access-Control-Allow-Origin. 

十分に公平なので、私はその行をこれで変更しようとします:

$('#recaptcha_reload_btn').trigger('click'); 

それでも何も起きていません。誰かが何が起こっているのか知っていますか?

4

6 に答える 6

6

私のhtmlには次のものがあります:

<div class="g-recaptcha" id='recaptcha' data-sitekey="xxxxxxxxxx"></div>

私が使うgrecaptcha.reset();

例: if (typeof $('#recaptcha') != "undefined") { grecaptcha.reset(); }

于 2015-02-24T17:06:07.047 に答える
3

使用する

jQuery("#recaptcha_reload").click(); 

「#recaptcha_reload」という画像自体がトリガーです。a-tag がトリガーではないため、#recaptcha_reload_btn は機能しません。

于 2013-06-23T02:16:53.233 に答える
2
Recaptcha.reload();

(レキャプチャは既に読み込まれています)

于 2012-10-13T20:35:51.980 に答える
-1

要素にクリック ハンドラがバインドされていません。jQuery ドキュメントから:

.trigger( eventType [, extraParameters] )

説明: 指定されたイベント タイプの一致した要素に関連付けられているすべてのハンドラーと動作を実行します。

トリガーを呼び出す前に要素にハンドラーをアタッチしていない場合、実行するクリック ハンドラーはありません。

編集:

あなたが書くとき、$('#recaptcha_reload_btn').bind('click');あなたは実際にクリックハンドラを設定しますが、それは何もしません。そのクリックハンドラに何をすべきかを伝える必要があります:

$('#recaptcha_reload_btn').bind('click',function() {
    alert('you just clicked me');
};

コールバック ハンドラーを設定しない場合、イベントは登録されるだけで、アクションはトリガーされません。これをこの質問の解決策と組み合わせるiframe を jQueryでリロードすると、recaptcha が必要なことを行う必要があります。

$('#recaptcha_reload_btn').bind('click',function() {
    var iframe = document.getElementById('#recaptcha'); //use your own selector here!
    iframe.src = iframe.src;
};
于 2012-04-04T00:13:30.287 に答える
-1
$( "#recaptcha_reload_btn" ).click();
于 2012-06-19T06:39:14.367 に答える