2017-10-03 9 views
0

私はRecaptchaを有効にしたフォームを持っています。ユーザーがRecaptchaを確認せず、送信をヒットした場合、エラーメッセージで確認するよう求められます。次に、確認しますが、送信ボタンは無効のままで、フォームを送信できません。フォームがリフレッシュされずにRecapthcaが検証されると、無効な属性を削除するにはどうすればよいですか。一度送信を無効にするRecaptchaが確認されました

これまでの私のコード:

$(".elq-form").validate({ 

    submitHandler: function (form) { 
    var captcha = grecaptcha.render('evbox-recaptcha', {'sitekey' : 
    'my_key'}); 
    var response = grecaptcha.getResponse(captcha); 

    //recaptcha failed validation 
    if (response.length === 0) { 
     grecaptcha.reset(captcha); 
     $('#recaptcha-error').show(); 
     return false; 
    } 


    //recaptcha passed validation 
    else { 
     $('#recaptcha-error').hide(); 
     $('#submit').attr("disabled",false); 
     return true; 
    } 
    } 
}); 


<p class="field-p"> 
        <div id="recaptcha-error" style="display: none"> 
        <p>[[%site.text.recaptcha? &topic=`default` &namespace=`site`]]</p> 
        </div> 
        <div id="evbox-recaptcha" class="g-recaptcha" data-sitekey="my_key"></div> 
        <input id="submit" name="submit" type="submit" value="[[%site.button.submit? &topic=`default` &namespace=`site`]]" class="submit-button button button__primary" /> 
       </p> 

答えて

0

は、私はあなたが次のことをチェックすべきだと思う:

var captcha = grecaptcha.render('evbox-recaptcha', {'sitekey' : 'my_key'}); 
var response = grecaptcha.getResponse(captcha); 

//recaptcha failed validation 
if (response.length === 0) { 
    grecaptcha.reset(captcha); 
    $('#recaptcha-error').show(); 
    return false; 
} 

参照:reCAPTCHA V2 | Google developers

+0

いいえ、違いは答え編集プラザをチェックしません – madameFerry

+0

。 – AboElnouR

+0

まだ動作しません。私は、優れたユーザーエクスペリエンス:( – madameFerry

0

あなたは "のattr" の代わりに "小道具" を試してみましたか?

$('#submit').attr("disabled",false); 

参考:.prop() vs .attr()

+0

です。ありがとうナッツは変わりません。 – madameFerry

関連する問題