使用Google reCAPTCHA验证表单提交
Validating submit of form with Google reCAPTCHA
我看过这个问题
如何在表单提交上验证Google reCaptcha
并试图将这个问题的答案实现到我的代码中,以验证我的表单,这样,如果captcha还没有完成,它就不会提交。
然而,什么也没发生——它只是提交了表格。
这是我的代码:
<head>
<script type="text/javascript">
var onloadCallback = function() {
grecaptcha.render('html_element', {
'sitekey' : 'my_site_key'
});
};
</script>
</head>
<div id="html_element"></div>
<br>
<input type="submit" value="Submit" onclick="myFunction">
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer>
function myFunction() {
if(grecaptcha.getResponse() == "")
alert("You can't proceed!");
else
alert("Thank you");}
</script>
有人能帮忙吗?
编辑
<html>
<head>
<script type="text/javascript">
var onloadCallback = function() {
grecaptcha.render('html_element', {
'sitekey' : 'site-key'
});
};
onloadCallback();
$('form').on('submit', function(e) {
if(grecaptcha.getResponse() == "") {
e.preventDefault();
alert("You can't proceed!");
} else {
alert("Thank you");
}
});
</script>
</head>
<body>
<form action="?" method="POST">
<div id="html_element"></div>
<br>
<input type="submit" value="Submit">
</form>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer>
</script>
</body>
您需要在事件中触发if
语句。如果你使用jQuery,你可以很容易地做到这一点:
$('form').on('submit', function(e) {
if(grecaptcha.getResponse() == "") {
e.preventDefault();
alert("You can't proceed!");
} else {
alert("Thank you");
}
});
请参阅此处的工作示例:JSFiddle
在JavaScript中这样做的问题是,如果用户愿意,他们可以很容易地伪造结果。如果你真的想检查用户是否是机器人,你仍然应该使用reCAPTCHA密钥在服务器端比较用户(通过POST)提交的结果。
相关文章:
- 如果ng单击附加到提交按钮,则表单未验证
- Magento表单验证,表单提交时没有有效字段
- 表单验证不起作用,并阻止表单提交
- 'Alajax' Jquery 简单表单提交.如果表单未经验证,如何防止提交
- 未执行Ajax隐藏表单提交验证
- 验证失败时阻止表单提交(Angular Material)
- jQuery验证插件停止表单提交,提交按钮获胜'不起作用
- angular js如何在提交一个表单时验证另一个表单
- 在表单提交中,在Codeigiiter验证之前先进行jquery检查
- 验证数组文件字段的表单提交
- 使用js表单验证器禁用html表单提交按钮
- 验证表单阻止表单提交
- AngularJS:在异步验证器完成之前阻止表单提交
- 引导验证不适用于表单提交
- 验证电子邮件时无法阻止表单提交
- JavaScript表单提交验证会干扰其他提交按钮
- HTML表单提交验证没有't为JS函数工作
- 仅将 jQuery 表单提交验证应用于 2 个提交按钮中的 1 个
- Redux表单提交验证不设置错误消息
- 表单提交验证动态下拉列表数