我头年底前增加了以下
<script src='https://www.google.com/recaptcha/api.js'></script>
我的形式结束前已经加入此
<div class="g-recaptcha" data-sitekey="== xxxxxx =="></div>
我可以看到类似的ReCaptcha https://developers.google.com/recaptcha/
但是,当用户按下数据不勾选复选框的数据提交。 是否有任何其他的代码,我需要添加到检查,如果用户按下的复选框? 希望在JS?
谷歌已经在复选框被选中回拨电话选项。
添加到您的表单元素:
data-callback="XXX"
例:
<div class="g-recaptcha" data-callback="recaptchaCallback" data-sitekey="== xxxxxx =="></div>
和禁用属性您的提交按钮。
例:
<button id="submitBtn" disabled>Submit</button>
然后,创建一个回调函数,写你需要的任何代码。
例:
function recaptchaCallback() {
$('#submitBtn').removeAttr('disabled');
};
您也可以拨打grecaptcha对象来检查。 grecaptcha.getResponse();
未选中,并检查时有验证码的时候是空的。
grecaptcha.getResponse().length === 0
时未选中
function isCaptchaChecked() {
return grecaptcha && grecaptcha.getResponse().length !== 0;
}
if (isCaptchaChecked()) {
// ...
}
要检查是否谷歌验证码被选中与否,你可以通过下面的代码做到这一点:
<script>
if(grecaptcha && grecaptcha.getResponse().length > 0)
{
//the recaptcha is checked
// Do what you want here
alert('Well, recaptcha is checked !');
}
else
{
//The recaptcha is not cheched
//You can display an error message here
alert('Oops, you have to check the recaptcha !');
}
</script>
让浏览器为你做的工作! (基于slinky2000答案)
注意:这仅仅是为了防止发送“意外”未选中的reCAPTCHA。 您还必须验证服务器端的ReCaptcha因为机器人不关心...
添加有一种无形的输入标签required=true
只是下面的属性div.g-recaptcha
。
<input id='recaptcha_check_empty' required tabindex='-1',
style='width:50px; height:0; opacity:0; pointer-events:none;
position:absolute;
bottom:0;'>
括两个宽度一个div
与position=relative;
指向的bottom:0;
以上验证码的底部。
现在,浏览器会询问很好地填补了这一领域 - 指向recapcha。
现在,我们需要回调:
<div class="g-recaptcha" data-callback="recaptchaCallback" ...
和
function recaptchaCallback() {
$('#recaptcha_check_empty').val(1);
}
要检查谷歌验证码V2被选中与否,你可以通过下面的代码做到这一点:
var checkCaptch = false;
var verifyCallback = function(response) {
if (response == "") {
checkCaptch = false;
}
else {
checkCaptch = true;
}
};
$(document).ready(function() {
$("#btnSubmit").click(function() {
if (checkCaptch && grecaptcha.getResponse()!="") {
//Write your success code here
}
});
})