2012-01-24 11 views
0

私はAjaxを介してrecaptchaコントロールを確認したいと思います。MVC3:reaptchaをAjaxでチェックする方法、またはJSで直接チェックする方法は?

$(document).ready(function() { 
    $('#submit').click(function() { 
     $.ajax({ 
      url: '/Competition/CheckForm', 
      type: "POST", 
      data: ????, 
      success: function (data) { 
       alert(data); 
       return false; 
      }, 
      error: function (jqXhr, textStatus, errorThrown) { 
       alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
       return false; 
      } 
     }); 
    }); 
}); 

私の問題は、どのように私のActionResultにrecaptchaデータを転送することができます。ここで

@ReCaptcha.GetHtml(publicKey: "publicKey") 

は私のActionResultです:

[HttpPost] 
public ActionResult CheckForm(???) 
{ 
    if (ReCaptcha.Validate(privateKey: "privateKey")) 
    { 
    } 
    return Json(); 
} 

誰もが私はアヤックスとのreCAPTCHAを確認することができますどのようにアイデアを持っていますか?

それはあなたの機能(「recaptchalib.php」から「recaptcha_check_answer」)

TIAとのデータをチェックする可能性を持っている...そこにPHPで簡単です!

答えて

2

はそれをAJAXifyするために、フォームのイベントを提出するに加入してみてください。

$(document).ready(function() { 
    $('#myForm').submit(function() { 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: $(this).serialize(), 
      success: function (data) { 
       alert(data); 
      }, 
      error: function (jqXhr, textStatus, errorThrown) { 
       alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
      } 
     }); 
     return false; 
    }); 
}); 

しかし、あなたは、いくつかの要素は、そのあなたも行うことができ、ボタンを提出するよりも、他のクリックされたときに与えられたフォームを送信AJAXしたい場合次のようになります。

$(document).ready(function() { 
    $('#someButton').submit(function() { 
     var myForm = $('#myForm'); 
     $.ajax({ 
      url: myForm.attr('action'), 
      type: myForm.attr('method'), 
      data: myForm.serialize(), 
      success: function (data) { 
       alert(data); 
      }, 
      error: function (jqXhr, textStatus, errorThrown) { 
       alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
      } 
     }); 
     return false; 
    }); 
}); 
+1

ありがとうございます。しかし、ActionResultはどのように見えますか? – lifeofbenschi

+0

@lifeofbenschi、それはあなたの行動が欲しいものに依存します。たとえば、フォームのさまざまな入力フィールドを含むビューモデルを定義し、次にコントローラアクションがそのモデルを引数として取るようにすることができます: 'public ActionResult CheckForm(MyViewModel model){...}'。使用している 'ReCaptcha.Validate'メソッドは正しいので、ユーザーが正しいcaptcha値を入力したかどうかを確認することができます。 –

+0

私はrecaptchaコントロールを確認し、jsonとして結果(正しいか偽)を返したいと思います。しかし、私は "Validate"機能が必要とするデータは何も知らない。 (フォーム全体か特定の値ですか?) – lifeofbenschi

関連する問題