我在一个页面上有两个表单,我目前使用的是 google captcha v2,但我想将表单升级到 captcha v3,有没有一种简单的方法可以做到这一点。
从我读到的文档中,使用此代码可以工作,但它仅适用于一种形式 它忽略了我第一次点击检查表单上的所有必填字段。
<script>
function onClick(e) {
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) {
// Add your logic to submit to your backend server here.
});
});
}
</script>
<form role='form' method='POST' id='myForm' enctype='multipart/form-data' class='hiddenContent myForm2'>
<center><div id='myCaptchaDiv1'></div></center>
<div class='form-row'>
<div class='col-12' id='btn-subtmit'>
<button class='btn btn-primary btn-controls'>Submit <i class='fas fa-check'></i></button>
</div>
</div>
</form>
<form role='form' method='POST' id='myForm' enctype='multipart/form-data' class='hiddenContent myForm2'>
<center><div id='myCaptchaDiv2'></div></center>
<div class='form-row'>
<div class='col-12' id='btn-subtmit'>
<button class='btn btn-primary btn-controls'>Submit <i class='fas fa-check'></i></button>
</div>
</div>
</form>
<script type="text/javascript">
var CaptchaCallback = function() {
grecaptcha.render('myCaptchaDiv1', {'sitekey' : 'myoid'});
grecaptcha.render('myCaptchaDiv2', {'sitekey' : 'myoid'});
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit" async defer></script>
答案 0 :(得分:0)
您是否为两个表单都添加了事件侦听器?表单必须具有唯一的 ID(您将它们都发布为“myForm”),并确保您像这样注册 all_values = worksheet.get_all_values()
row_count = len(all_values)
sheet_range = "'{}'!{row}:{row}".format(worksheet.title, row=row_count+1+insert_count)
values = {
"Name": "Ford",
"Age": "34",
"Color": 'Blue'
}
worksheet.append_row(sheet_range, values)
回调:
onClick
您可能要做的任何表单验证(检查必填字段),您都可以之前 const form1 = document.getElementById('myForm1');
const form2 = document.getElementById('myForm2');
form1.addEventListener('submit', onClick);
form2.addEventListener('submit', onClick);
。一个例子:
grecaptcha.ready(...)