これは、jQuery フォーム検証と reCAPTCHA を組み合わせる方法を示すチュートリアルです。 http://snipplr.com/view/15563/jquery-validating-recaptcha-with-ajax/
私の理解に基づいて、上記のチュートリアルは実際には、サーバーの reCAPTCHA スクリプトと通信する aJax を介してクライアント側の検証を行います。
検証が成功したら、コメントから借用した次のコードを使用します。
$('#formID').validate({
submitHandler: function(form) {
if(validateCaptcha()){ // Submit form
offerForm.ajaxSubmit(); } } });
フォームを送信するには、元のコードの 21 行目を参照してください。
$("form").attr("action", "http://action/to/the/form_handler.php");
私の質問は、渡されたパラメーターを使用して form_handler.php 内で recaptcha_check_answer を呼び出さなければならないかどうかです。
challengeField = $("input#recaptcha_challenge_field").val();
responseField = $("input#recaptcha_response_field").val();
そうでない場合は、検証手順を変更することで簡単に reCAPTCHA を回避できます。クライアントとサーバーの両方の検証に対して常に必要な同じ考えのようです。
誤解している場合は、私の考えを修正してください。
// 私が抱えている問題の詳細情報を提供します ///
<code>
<form id="regFormBody" method="post" action="verify.php">
...
</code>
$("#regFormBody").validate({
debug: true,
errorPlacement: function (error, element) {
error.insertAfter(element.parents('div.collection:first'));
},
rules: {
loginemail: { required: true, email: true, rangelength: [4, 32] },
password: { required: true, rangelength: [8, 30], passwordPattern: true },
confirmpassword: { required: true, rangelength: [8, 30], equalTo: "#password" }
}
}
});
私が抱えている問題は次のとおりです。フォームがクライアント側の検証に合格した場合、verify.php はまったくトリガーされず、検証後に停止します。ありがとうございました