2016-09-15 5 views
2

私は、ユーザーがGoogleのrecaptchaをチェックして確認するとすぐにresultcaptchaメッセージを隠すことに興味があります。最初の部分(v.length == 0)だけが機能します。 else ifは動作しません。あなたは、こちらのフォームをチェックすることができます。https://csandreas1.herokuapp.comGoogle recaptcha validation with Jquery

if(grecaptcha.getResponse() == 0) // this works 
    { 
     $('#resultcaptcha').show(); 
     $('#resultcaptcha').html('<i class="fa fa-exclamation-circle w3-text-red fa-3x" aria-hidden="true"></i> <span class="w3-text-white w3-bold" style="font-size:16px"> Please verify that you are a human</span>'); 
    } 
    else if(grecaptcha.getResponse() == 1)//this doesn't work 
    { 
     $('#resultcaptcha').hide(); 
     $('#resultcaptcha').html(''); 
    } 

    else{//submit the form} 
+0

てみ '応答は1つの –

+0

ハズレ以上の長さを持つトークンIDであるようv.length> 1 '、コンソールと実際に何を検査する –

+0

ログイン応答を動作しません(Documentationを参照してください)含まれています。 – CBroe

答えて

5

上記のコードは(SEND)ボタンをクリックすると、「提出」する場合にのみトリガーするフォームsubmitイベントハンドラ内です。

キャプチャが確認されるとすぐにエラーメッセージを非表示にするには、captcha要素(class="g-recaptcha")にdata-callbackを使用する必要があります。キャプチャが正常に確認された時点でコールバックが実行されます。ここにはdocumentation linkがあります。

コードは次のようになります。することができます、あなたがもう一度キャプチャをリセットしたい場合は、それが正常に送信された後、フォームをクリアすると言う、また

<script> 
    function captcha_callback(response) { 
     if (response.length > 1) { 
      $('#resultcaptcha').html(''); 
     } 
    } 
</script> 

<div class="g-recaptcha" data-sitekey="site_key" data-callback="captcha_callback"><div> 

を(私はdata-callback属性を使用してコードを確認できませんでしたが、それはgrecaptcha.render()方法で働いていたんでした)使用:

grecaptcha.reset() 
+0

ご協力いただきありがとうございます –