首页 > 解决方案 > 使用 grecaptcha.reset() 仅重置 recapcha 的第一个实例

问题描述

我在我的角度应用程序中使用 ngx recapcha。我在一个模式中同时拥有登录和注册表单。我在模式关闭时重置了recapcha grecaptcha.reset();,但只有登录组件中的recapcha的第一个实例被重置,注册组件中的recapcha没有。

我什至尝试放入grecaptcha.reset();单独的登录和注册组件,但即使grecaptcha.reset();在注册组件中不起作用它仍然重置登录组件的recapcha而不是注册组件的recapcha,仍然存在相同的问题。

这是结构 home-component.html

<div class="modal">
<app-login></app-login>
<app-register></app-register>
</div>

在html里面

    <re-captcha [ngClass]="{'face err-captcha': captchaResponse==false && submitted}"
              class="recaptcha" (resolved)="resolved($event)" siteKey={{captchaSiteKey}}>
 </re-captcha>

ts

resolved(captchaResponse: string) {
    if(captchaResponse !== null) {
      this.data.verifyCaptcha(captchaResponse).subscribe((res: any)=>{
        if(res.success) {
          this.captchaResponse = true;
          }
      });
    } else {
      this.captchaResponse = false;
      alert("Cant connect to google recaptcha");
    }
  }

标签: angular

解决方案


推荐阅读