Функция onValidate()
от Marketo не работает с Google Recaptcha v3's grecaptcha.execute()
. У меня установлено значение false для отправки, и когда запускается проверка marketo, он не ждет, пока вернется grecaptcha.execute()
, даже если я использовал async await.
<script>
MktoForms2.whenReady(function (mktoForm) {
mktoForm.submittable(false);
mktoForm.onValidate(async function (native) {
if (!native) return;
const recaptchaToken = await grecaptcha.execute(userConfig.apiKeys.recaptcha, {
action: userConfig.actions.formSubmit
});
mktoForm.addHiddenFields({ "Recaptcha": recaptchaToken });
if (recaptchaToken.length) {
mktoForm.submittable(true);
} else {
mktoForm.submittable(false);
}
});
})
</script>
onValidate()
должен дождаться разрешения recaptchaToken перед возвратом, однако он обходит await
и каждый раз использует subbmittable от marketo как false
.