jquery reCAPTCHA v3 g-recaptch使用表单提交

e5nszbig  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(154)

我想使用recaptcha API但不想重写这个函数。我在提交按钮和表单标签上有密钥。我可以看到它不生成令牌,只是发送sitekey。任何帮助将是伟大的。
选项一使用表单标记中的键

<form method="POST" name="Form" id="Form" data-sitekey="Form hjkhjkhjkhjk">

字符串
选项二使用按钮标记中的键

<button type="submit" 
    class=g-recaptch "btn btn-primary px-4 float-right" 
    data-sitekey="@reCaptchaKey">
   Submit
</button>


目标是使用此方法发送 AJAX 请求

$("#Form").submit(function(e) {
    e.stopPropagation();
    e.preventDefault();
    let formData = this.dataset.sitekey;
    console.log(formData);
    let submitter_btn = $(e.originalEvent.submitter);
    console.log(submitter_btn.data('sitekey'));
});


工作样品https://jsfiddle.net/tjmcdevitt/8cawy1kb/18/

g9icjywg

g9icjywg1#

你必须使用grecaptcha对象的execute方法。为此,需要向reCAPTCHA脚本加载添加一个呈现参数。有关详细信息,请参阅documentation

$(document).ready(function() {
    $("#Form").submit(function(e) {
        e.stopPropagation();
        e.preventDefault();
         let formData = this.dataset.sitekey;
         let submitter_btn = $(e.originalEvent.submitter);
        
        grecaptcha.ready(function() {
            grecaptcha.execute(submitter_btn.data('sitekey'), {
                action: 'submit'
            }).then(function(token) {
                // Add your logic to submit to your backend server here.
                consle.log(token);
            });
        });
    });
});

个字符

相关问题