Javascript 要求用户单击google';提交表格前的新recaptcha
我正在我的表单(HTML5)中使用谷歌新的recaptcha: 在提交表格之前,是否有办法按要求检查并标记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
我可以使用任何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)。我不是在检查验证是否正确,我是在检查是否在提交表单之前输入了验证。可能是重复的谢谢,这节省了我大量的工作!顺便说一句,括号中有一个错误,应该是$(“表单”)。提交(函数(事件){
开头,和})代码>在末尾。