Javascript 需要重述TCHA示例

Javascript 需要重述TCHA示例,javascript,php,recaptcha,Javascript,Php,Recaptcha,我想在我的表单上实现reCAPTCHA 2,方法与Google的演示相同: 但是我找不到源代码。与此演示一样,我不想提交表单并通过POST参数进行验证检查,因为那时我必须弄清楚如何将用户导航回表单页面;相反,我希望在用户成功单击“我不是机器人”复选框之前阻止提交。我查阅了谷歌文档,并在网上搜索了一些例子,但还没有找到答案——如果有任何帮助,我将不胜感激 编辑 注释中的示例似乎是reCAPTCHA v1示例,尽管我特别要求使用v2。我认为您不需要在v2中包含php库,我真正想要的是确保用户在提交

我想在我的表单上实现reCAPTCHA 2,方法与Google的演示相同:

但是我找不到源代码。与此演示一样,我不想提交表单并通过POST参数进行验证检查,因为那时我必须弄清楚如何将用户导航回表单页面;相反,我希望在用户成功单击“我不是机器人”复选框之前阻止提交。我查阅了谷歌文档,并在网上搜索了一些例子,但还没有找到答案——如果有任何帮助,我将不胜感激

编辑 注释中的示例似乎是reCAPTCHA v1示例,尽管我特别要求使用v2。我认为您不需要在v2中包含php库,我真正想要的是确保用户在提交之前已经回答了reCAPTCHA挑战(我已经有了一个onsubmit JS函数来验证其他输入),而不是它是否验证(我在服务器php文件上这样做)。 正如我在最初的帖子中提到的,我已经搜索了一个答案,但没有找到一个能复制我链接到的谷歌演示的答案

编辑2 我能够实现客户端检查,检查用户是否在我的HTML页面上使用以下JavaScript完成了reCAPTCHA小部件:

<body>
    <form id="entryForm" name="entryForm" method="post" action="php/formSubmit.php" onsubmit="return validateForm();">

...
    </form>

    <script type="text/javascript">
        function validateForm() {
            // User has to check reCAPTCHA
            if(grecaptcha.getResponse() == '') {
                alert("Please complete the I'm-not-a-robot widget before submitting your entry.");
                //document.forms["entryForm"]["acceptAgrmt"].focus();
                return false;
            }
        }
    </script>
</body>

...
函数validateForm(){
//用户必须检查reCAPTCHA
if(grecaptcha.getResponse()=''){
提醒(“请在提交您的条目之前完成I'm-not-a-robot小部件。”);
//document.forms[“entryForm”][“acceptagermt”].focus();
返回false;
}
}

这就是我的工作原理:

<form id="entryForm" name="entryForm" method="post" action="php/formSubmit.php" onsubmit="return validateForm();">

。 .


函数validateForm(){
//用户必须检查reCAPTCHA
if(grecaptcha.getResponse()=''){
提醒(“请在提交您的条目之前完成I'm-not-a-robot小部件。”);
//document.forms[“entryForm”][“acceptagermt”].focus();
返回false;
}
。 .
.

这是由js和HTML/CSS完成的自定义google reCAPTCHA示例

jQuery('save#u default_color')。在('change',function()上{
if(jQuery(this).is(':checked')){
jQuery(this).attr(“disabled”,true);
jQuery('.box_layer').addClass('hide_border');
jQuery('.circle_1').addClass('show_cir_1');
setTimeout(函数(){
jQuery('.circle_2').addClass('show_cir_2');
},700);
setTimeout(函数(){
jQuery('.load_cir').addClass('show_load_cir');
},1500);
setTimeout(函数(){
jQuery('.circle_1').addClass('show_cir_1_hide');
},2000);
setTimeout(函数(){
完全();
},5000);
}
});
函数完成(){
$(“.complete_save”).toggleClass(“Drawed”);
setTimeout(函数(){
jQuery('.load_cir').removeClass('show_load_cir');
},200);
}
input#保存_默认_颜色{
显示:无;
}
身体{
保证金:0;
背景色:#0e0e;
}
.将颜色设置为默认颜色{
显示:块;
宽度:250px;
背景色:#f9f9f9;
填充:20px;
保证金:100px自动0自动;
边界半径:4px;
}
p、 lbl_文本{
显示:内联块;
垂直对齐:中间对齐;
利润率:0.20px;
字体大小:20px;
字体系列:无衬线;
颜色:#333;
位置:相对位置;
顶部:2个;
}
.将\u设置为\u默认\u颜色标签{
宽度:30px;
高度:30px;
显示:内联块;
垂直对齐:中间对齐;
位置:相对位置;
转换:比例(1.5);
}
.box_层{
位置:绝对位置;
显示:块;
宽度:100%;
身高:100%;
排名:0;
左:0;
边框:2个实心#999;
边界半径:15%;
过渡:全部5秒;
变换:比例(.8);
}
.box\u层。隐藏\u边框{
过渡:全部5秒;
变换:比例(0);
变换原点:中心;
}
.圆圈1{
位置:绝对位置;
显示:块;
宽度:20px;
高度:20px;
变换:比例(0);
变换原点:中心;
边框:6px固体rgba(611822280.68);
边界半径:100%;
过渡:全部5秒;
不透明度:1;
背景色:rgba(61,182,228,0.50);
}
.圆圈1.显示圆圈1{
过渡:全部5秒;
变换:比例(.9);
不透明度:.3;
}
.circle_1.show_cir_1.show_cir_1.hide{
不透明度:0;
}
.圆圈2{
位置:绝对位置;
显示:块;
宽度:100%;
身高:100%;
变换:比例(0);
变换原点:中心;
背景色:#f9f9f9;
边界半径:100%;
过渡:全部5秒;
不透明度:1;
顶部:1px;
左:1px;
}
.循环2.显示循环2{
过渡期:全部7秒;
变换:缩放(.5);
}
.load_cir{
位置:绝对位置;
顶部:-3px;
左:-3px;
宽度:100%;
身高:100%;
变换:比例(.8);
变换原点:中心;
不透明度:0;
过渡:全部5秒;
}
.加载循环。显示加载循环{
不透明度:1;
过渡:全部5秒;
}
旋转器{
宽度:40px;
高度:40px;
x:0px;
y:0px;
视图框:0 0 40;
}
旋转圆{
填充:透明;
冲程:#4389f2;
笔画宽度:6;
笔划线头:圆形;
行程数组:110.6;
-webkit转换源:20px 20px 0;
-moz变换原点:20px 20px 0;
-ms变换原点:20px 20px 0;
-o-变换原点:20px 20px 0;
变换原点:20px 20px 0;
-webkit动画:微调器2s线性无限;
-moz动画:微调器2s线性无限;
-ms动画:微调器2s线性无限;
-o动画:微调器2s线性无限;
动画:微调器2s线性无限;
}
@-webkit关键帧微调器{
0% {
-webkit变换:旋转(0度);
行程偏移:26.4;
}
50% {
-webkit变换:旋转(540度);
行程偏移:110.6;
}
100% {
-webkit变换:旋转(1080度);
行程偏移:26.4;
}
}
@-moz关键帧微调器{
0% {
-moz变换:旋转(0度);
行程偏移:
<script type="text/javascript">
    function validateForm() {
        // User has to check reCAPTCHA
        if(grecaptcha.getResponse() == '') {
            alert("Please complete the I'm-not-a-robot widget before submitting your entry.");
            //document.forms["entryForm"]["acceptAgrmt"].focus();
            return false;
        }