Javascript 要求用户单击google';提交表格前的新recaptcha

Javascript 要求用户单击google';提交表格前的新recaptcha,javascript,php,forms,recaptcha,Javascript,Php,Forms,Recaptcha,我正在我的表单(HTML5)中使用谷歌新的recaptcha: 在提交表格之前,是否有办法按要求检查并标记recaptcha? 我想在客户端而不是服务器端验证这一点。这样,我就不必返回表单并警告用户不要为验证码输入任何内容 我可以使用任何javascript检查用户是否在recaptcha中输入任何内容?您可以使用idg-recaptcha-response检查textarea字段。您可以执行以下操作: $("form").submit(function(event) { var re

我正在我的表单(HTML5)中使用谷歌新的recaptcha:

在提交表格之前,是否有办法按要求检查并标记recaptcha? 我想在客户端而不是服务器端验证这一点。这样,我就不必返回表单并警告用户不要为验证码输入任何内容


我可以使用任何javascript检查用户是否在recaptcha中输入任何内容?

您可以使用id
g-recaptcha-response
检查textarea字段。您可以执行以下操作:

$("form").submit(function(event) {

   var recaptcha = $("#g-recaptcha-response").val();
   if (recaptcha === "") {
      event.preventDefault();
      alert("Please check the recaptcha");
   }
});

希望这对您有所帮助。

grecaptcha.getResponse()
- 返回Recaptcha的响应。您可以在以下条件中进行检查:


grecaptcha.getResponse(opt\u widget\u id)==”

可选小部件ID,如果未指定,则默认为创建的第一个小部件


参考:

使用Ankesh和Lammert部分解决方案的普通JavaScript实现:

var form = document.getElementById('ctct-custom-form');
form.addEventListener("submit", function(event){
    if (grecaptcha.getResponse() === '') {                            
      event.preventDefault();
      alert('Please check the recaptcha');
    }
  }
, false);

表单提交侦听器代码的功劳:

我试图改进rylanb的答案。下面的代码可以找到页面中激活了g-captcha并阻止提交的所有表单。 注意:它假设您的
div.g-recomptcha
form

const forms = document.querySelectorAll('div.g-recaptcha');
forms.forEach(form=> {
    const formParentElement = form.parentElement;

    formParentElement.addEventListener("submit", e => {
        if (grecaptcha.getResponse() === '') {
            e.preventDefault();
            alert('Please check the recaptcha');
        }
    }, false)
});

最简单的方法是改变按钮的类型

    <button class="theme-btn" type="button" onclick="checkForm()" id="sign_up_button" >

现在创建一个Java脚本函数来更改验证时提交的类型

<script type="text/javascript">

//NoCaptcha函数

    function checkForm(){
      
        if(!document.getElementById("g-recaptcha-response").value){
            alert("Please Prove ! You're not a Robot");
            return false;
        }else{
            document.getElementById("sign_up_button").type = "submit";                
            return true;
        }
    }

 </script>
函数检查表(){
if(!document.getElementById(“g-recaptcha-response”).value){
警惕(“请证明!你不是机器人”);
返回false;
}否则{
document.getElementById(“注册按钮”).type=“提交”;
返回true;
}
}

我想你可以用ajax来实现你的孪生兄弟:我同意,但是我要怎么做才能触发ajax调用呢?触发也需要时间。@Dagon它实际上有点不同,因为我希望它是用javascript触发的事件(不使用ajax)。我不是在检查验证是否正确,我是在检查是否在提交表单之前输入了验证。可能是重复的谢谢,这节省了我大量的工作!顺便说一句,括号中有一个错误,应该是
$(“表单”)。提交(函数(事件){
开头,和
})在末尾。