Gin*_*rel 1 javascript jquery recaptcha
我有一个问题,让count参数传递到verifyCallback下面的代码中:
var CaptchaCallback = function () {
console.log('CaptchaCallback run');
var count = 0;
$('.g-recaptcha').each(function (index, el) {
grecaptcha.render(el, {
'sitekey': 'xxx',
'callback': verifyCallback(count)
});
count++;
});
};
Run Code Online (Sandbox Code Playgroud)
如果我删除参数一切正常,只有参数不能传递给函数的基本部分.
如果我添加参数,函数会立即运行,而无需等待ReCaptcha验证.
我希望能够传递参数,然后在验证ReCaptcha时运行该函数.
这是参数传递给它的函数,如果它有帮助:
function verifyCallback(formNumber) {
//var formNumber = 1;
console.log('verifyCallback');
$('#submitBtn_' + formNumber).prop('disabled', false);
console.log('#submitBtn_' + formNumber);
}
Run Code Online (Sandbox Code Playgroud)
编辑:当我使用参数时,它不会带来计数,它会带回谷歌的响应......
谢谢
问题是因为您正在verifyCallback立即调用该函数并将该函数的返回值赋给该callback属性.
要解决此问题,请将函数调用包装在匿名函数中,然后将其作为对函数的引用提供callback.另请注意,您可以使用处理程序中的index值each()而不是手动维护count变量.使用此方法还意味着您不需要使用闭包来将count值保持在当前迭代的范围内.试试这个:
var CaptchaCallback = function () {
console.log('CaptchaCallback run');
$('.g-recaptcha').each(function (index, el) {
grecaptcha.render(el, {
sitekey: 'xxx',
callback: function() {
verifyCallback(index)
});
});
count++;
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1223 次 |
| 最近记录: |