我正面临一个关于 Invisible recaptcha 的奇怪问题。2 分钟后,当 Recaptcha 过期时,它的抛出脚本错误“找不到对象”。甚至尝试使用 WidgetID 但显示相同的行为。唯一的区别是我在 Recaptcha 提交和我的表单提交之间有一个额外的步骤。在按钮上成功重新验证提交后,单击页面上的弹出 div 打开,最终提交发生在单击弹出 div 提交按钮时。所有提交过程都正常工作,但是当验证码过期时,如果表单在弹出的 div 上闲置超过 2 分钟,则会引发错误。下面是代码片段:
<div>
<div>
...................
<div class="form__group">
<label class="text captcha"></label>
<div class="g-recaptcha" data-badge="inline" data-sitekey="{$CaptchaWebsiteKey}" data-size="invisible" data-expired-callback="validateExpire" data-callback="onSubmit"></div>
</div>
<div class="form__group">
<input id="btnPopUp" type="submit" class="btn btn--primary btn--full btn--xs-full" value="Submit your details"/>
</div>
</div>
</div>
<div id="modal" style="visibility:hidden;" class="modal">
<div class="modal-content">
<div class="modal-space">
...................
<div class="modal-space1">
<input type="submit" id="btnSubmit" value="Submit" class="modal-btn modal-space2 btn btn--primary btn--xs-full" disabled="true"/>
<input type="submit" value="Cancel" onclick="return closePopup();" class="modal-btn modal-space2 btn btn--primary btn--xs-full" />
</div>
</div>
</div>
</div>
<div class="overlay"></div>
<script language="javascript" type="text/javascript">
onload();
function onload() {
var element = document.getElementById('btnPopUp');
element.onclick = validate;
}
var captchaResponse='';
function onSubmit(response){
captchaResponse = response;
openPopup();
}
function validateExpire() {
grecaptcha.reset();
captchaResponse='';
}
</script>
任何人都可以帮助解决这个问题吗?提前致谢。