这段时间在做 PHP 项目,需要用到验证码的功能。而谷歌的 reCaptcha 配置简单,我就弄了一个尝鲜。按照 官方文档 的服务端配置好之后发现一个问题,就是如果提交完表单,服务端才提示用户没有完成验证码,那用户体验就差很多了。

那么问题也就来了,如何在表单未提交的时候判断用户是否完成验证呢?答案是,通过 reCaptcha 的这个 getResponse 方法,即可判断发送给服务器的表单内容。如果该值为空,则用户就没完成验证了。

grecaptcha.getResponse()

我们就可以在表单提交之前验证一下该方法返回的内容,趁早给用户提示信息,就可以提升交互体验。

if(grecaptcha.getResponse() == ""){
    console.log("请先进行人机验证");
}
else{
    console.log("验证通过");    
}

参考来源:StackOverFlow