我正在为我们的CMS应用程序中的一个网站创建一个表单,该应用程序使用了谷歌新的隐形reCaptcha。
然而,我被困在如何使用reCaptcha的回调上?
在使用验证码之前,代码非常简单:
HTML
<form>
Form input fields here...
<button id="a23k4l234lj2l-submit-button"></button>
</form>
jQuery
$('#a23k4l234lj2l-submit-button').click(function (e) {
e.preventDefault();
var that = $(this);
if(Abayo.validate(that)) {
Abayo.submit(that);
}
})
Abayo
库具有验证特定表单并将数据发送到处理表单数据的脚本的函数。
现在,我想将reCaptcha添加到表单中。文件说明如下:
1创建一个div与data-size='不可见'。
<div class="g-recaptcha"
data-sitekey="your_site_key"
data-callback="onSubmit"
data-size="invisible">
</div>
2打电话给grecaptcha。从javascript方法执行。
grecaptcha.execute();
这是可行的,但是captcha的回调函数只给我一个响应代码来检查验证用户响应:
html" target="_blank">用户的响应g-recaptcha-response将作为回调函数的输入。
响应只告诉我是否可以将请求发送到服务器。
我需要的是submit按钮的位置、DOM元素或按钮的任何类型的标识,以便从与按钮匹配的表单中检索数据?
使用以下代码,我无法从表单中检索数据并将其发送到服务器?
$('#a23k4l234lj2l-submit-button').click(function (e) {
e.preventDefault();
grecaptcha.execute();
})
var onSubmit = function(response) {
// var that cannot be defined, I don't have a DOM element anywhere?
var that = ????
if(Abayo.validate(that)) {
Abayo.submit(that);
}
}
有没有办法在reCaptcha回调中获取DOM元素?
你有没有尝试过像这样动态地设置onSubmit
函数(保持你的div
标记为data-call back="onSubmit"
):
$('#a23k4l234lj2l-submit-button').click(function (e) {
e.preventDefault();
var that = $(this);
if(Abayo.validate(that)) {
window.onSubmit = function(){ // defining onSubmit function dynamically here
Abayo.submit(that); // you can access `that` here
};
grecaptcha.execute();
}
})
注意:我手边没有sitekey来验证此代码。因此,将此视为一种方法而不是使用代码示例。
您可以以编程方式创建reaptcha。
首先创建您的验证码div。
<div id="myCaptcha" />
然后呈现验证码并使用令牌传递数据。
var that = $(this);
grecaptcha.render('myCaptcha', {
sitekey: 'xxx',
callback: function(token) {
Abayo.submit(token, that)
}
});
更多信息请点击这里https://developers.google.com/recaptcha/docs/invisible#js_api
我正在尝试在我的AngularJS web应用程序中实现不可见的reCAPTCHA。根据他们的文档,我应该在登录表单的提交按钮中添加一个名为“数据回调”的属性。但是,我使用ng click将http请求的函数附加到按钮。那么我应该在“数据回调”属性的值中输入什么呢?另外,我如何知道recaptcha结果是否成功,并获取g-recaptcha-response以使用http请求发送到服务器? htt
我正在尝试实现新的不可见的reCaptcha,但它不起作用。 首先,事件困难我已经用“隐形”选项创建了一个新的键,在我的应用程序中更改了键,当我在控制台中查看时,我可以看到这个请求: 根据医生的说法是对的... 第二,我选择将验证码放在一个div中(根据文档这是可以的): 这是一个验证码解决方案,但不是不可见的解决方案,因为它仍然显示框。我知道我也必须使用execute函数,但由于我仍然看到框,我
问题内容: 我有以下代码: 我要解决的问题是这个,我要在 里面 使用。我该怎么做呢? PS:内部的函数在Go中称为回调吗? 问题答案: 您也可以尝试返回一个函数:
在文档中,它假定表单是普通表单,而不是Ajax。到底应该如何将不可见的reCaptcha集成到我的ajax表单中?例如: 特别是,我应该为“数据回调”处理程序指定什么?同样,在文档中,it data-callback提交了一个表单,但是是一个普通的表单,而我的表单是Ajax。我需要“数据回调”吗?我不应该在处理程序中调用recaptcha吗?怎么做? 有“render”、“getresponse”
我正在建立一个PHP网站,我想把验证码放在登录表单上。我使用了Google新的隐形reCaptcha,但在实现它时遇到了麻烦(HTML部分,PHP正在工作)。 我现在得到的“普通”reCaptcha的代码如下(根据Google reCaptcha的说明,这是有效的): 当我注册时,确认邮件中发送了一些指示(大约花了24小时才得到确认)。也就是说: 隐形reCAPTCHA集成 > 请确保您的站点密钥
问题内容: 与Firebase问题相比,这更像是JavaScript关闭问题。在以下代码中,Firebase回调无法识别父作用域中的变量myArr。 问题答案: 回调函数可以很好地识别/修改。问题是,当执行标记为“不工作”的标签时,回调尚未触发。 让我们稍微更改一下代码: 现在,可能会更容易了解发生了什么。 您注册一个侦听器,该侦听器将调用添加到Firebase中的每个帖子 这将导致对服务器的调用