私はreCAPTCHAとAJAXを使用してCAPTCHAを検証しようとしています。変数を設定していないJQueryを使用したAJAX呼び出し
私はそれをすべて行う機能がありますが、フォームを送信するかどうかを指定するために、呼び出し関数にtrueまたはfalseの値を返す必要があります。
私のAJAXコールは正しく処理されていますが、CAPTCHAが無効であることを示すフラグが設定されている場合は設定されていません。 formValid
上記のコードが間違っていた、常に真であるとして
formValid = false
が何らかの理由で動作しない設定
function validateComment(isReply)
{
formValid = true;
if (isReply) { qualifier = "Reply"; } else { qualifier = "New"; }
$("#comment" + qualifier + "Error").hide();
$.post("/scripts/checkcaptcha.php",
{
recaptcha_challenge_field : $('#recaptcha_challenge_field').val(),
recaptcha_response_field : $('#recaptcha_response_field').val()
},
function(data)
{
if (data == "invalid")
{
$("#comment" + qualifier + "Error").html("<p>Incorrect CAPTCHA entered</p>");
$("#comment" + qualifier + "Error").slideDown();
formValid = false;
Recaptcha.reload();
}
}
);
alert(formValid);
return false;
}
、それが設定されていない:私はそれだけでなくので、ここで説明していないよ
コードです。
これは、物事の処理方法と関係があると推測しています。
なぜ、どのように私はこれを修正することができますか?
ありがとうございました。
はあなたの関数の外側 'formValid'変数宣言を移動しようとしたことがありますか?これはスコープの問題かもしれません... –
'formValid = false'の文が実行されているかどうか(デバッグポイントかアラートで)チェックしましたか?どうすれば 'if(data ==" invalid ")'の前の文はどうですか? – Nivas
'formValid = false;'を除いてすべてが実行されています。関数の外で 'formValid = true; 'を動かしてみましたが、私はまだ同じ動作をします。 – Tom