我正面临一个与Invisible recaptcha有关的奇怪问题。在Recaptcha过期2分钟后,其投掷脚本错误"找不到对象"。甚至尝试使用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>
有人可以帮忙解决这个问题吗?提前谢谢。