Javascript ReCaptcha 2.0:如果ReCaptcha成功,则在回调时启用提交按钮

Javascript ReCaptcha 2.0:如果ReCaptcha成功,则在回调时启用提交按钮,javascript,php,jquery,captcha,recaptcha,Javascript,Php,Jquery,Captcha,Recaptcha,我有一个非常简单的表格如下。我想使提交按钮被禁用,并且仅在用户成功完成ReCaptcha后启用 我假设我需要一些Javascript/jQuery来完成这项工作 谷歌关于ReCaptcha 2.0的文档看起来非常稀疏和密集(无论如何,对我来说)。我希望你能给我一些建议: <form action="something.php" method="post"> Name: <input type="text" size="40" name="name"><br&

我有一个非常简单的表格如下。我想使提交按钮被禁用,并且仅在用户成功完成ReCaptcha后启用

我假设我需要一些Javascript/jQuery来完成这项工作

谷歌关于ReCaptcha 2.0的文档看起来非常稀疏和密集(无论如何,对我来说)。我希望你能给我一些建议:

<form action="something.php" method="post">
    Name: <input type="text" size="40" name="name"><br><br>
    <div class="g-recaptcha" data-sitekey="############-#####"></div>
    <input type="submit" value="Submit" >
</form>

名称:


我在测试现场也做了同样的事情。但是,我使用了按钮而不是提交,因此:

您必须添加属性
data callback=“enableBtn”
data callback属性,该属性执行完成recaptcha后指定的函数

<div class="g-recaptcha" data-sitekey="############-#####" data-callback="enableBtn"></div>

希望能有所帮助。

假设验证码是提交按钮之前的最后一件事,您只会给访问者带来延迟。若javascript被禁用怎么办?@jeroen禁用javascript的人是我愿意放弃的边缘案例,以避免垃圾邮件机器人。这种方法真的安全吗?垃圾邮件机器人不能在没有任何类型的提交按钮的情况下提交表单吗?@user1883050,您没有将答案标记为正确。你让它工作了吗?有人在现实世界中测试过吗?我认为机器人不需要提交按钮,他们使用表单url、输入字段和帖子。。。或者这只是程序的一部分,不允许用户在未选中复选框的情况下提交表单?轻微更正(删除函数名后的括号):
@panda.o24非常有用,这对我很有用。不过有点困惑。调用回调时是否已完全验证验证码?如果是这样的话,您注册时获得的密钥的用途是什么?我假设在回调Javascript中的某个地方需要对Google进行Ajax调用?我弄错了吗?@ifinlay验证屏幕在运行时被呈现到一个注入DOM的文件中。iframe的内容负责调用Google并进行验证。您可以在服务器端执行相同的操作,但这需要密钥,可能是为了防止XSS?您的意思是
var enableBtn=function(){
还有一个
数据过期回调
属性,您应该设置该属性,如果用户等待时间过长且验证码检查过期,则可以再次禁用按钮。
<input type="button" value="Submit" id="button1" disabled="disabled">
 function enableBtn(){
   document.getElementById("button1").disabled = false;
 }