Как передать параметр этой функции Google 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++;
});
};
Если я удаляю параметр, все работает как надо, только параметр не может быть передан для важной части функции.
Если я добавлю параметр, функция будет запущена сразу, не дожидаясь проверки ReCaptcha.
Я хочу иметь возможность передать параметр, а затем запустить функцию при проверке ReCaptcha.
Вот функция, в которую передается параметр, если он помогает:
function verifyCallback(formNumber) {
//var formNumber = 1;
console.log('verifyCallback');
$('#submitBtn_' + formNumber).prop('disabled', false);
console.log('#submitBtn_' + formNumber);
}
Изменить: Когда я использую параметр, он не приносит счет, он возвращает ответ от Google...
Спасибо
1 ответ
Проблема в том, что вы звоните 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++;
});
};