在角度应用程序中重置google recaptcha?

时间:2015-09-21 10:05:39

标签: javascript angularjs recaptcha

我在角色项目中使用google的recaptcha,它按预期工作,但我无法弄清楚如何重置它。

我有一个用户发送数据的表单,我希望在表单成功发布后重置表单,以便用户可以发送另一封邮件。

在我的控制器中,我有以下方法:

 var resetForm = function () {
   //reset my models
   //reset my flags

   //here I would like to reset the recaptcha

}

如何从角度控制器内的函数执行此操作?

3 个答案:

答案 0 :(得分:4)

如果您使用的是版本1

Recaptcha.reload();

如果您使用的是版本2

grecaptcha.reset();

通过选择器:

jQuery('#recaptcha_reload').click();

答案 1 :(得分:1)

使用Recaptcha.reload();重新加载验证码。

答案 2 :(得分:0)

使用grecaptca在.ts中不起作用,我们需要通过@viewChild使用其模板引用(#)来读取组件实例。

步骤1:导入

import {NgxCaptchaModule,ReCaptcha2Component} from 'ngx-captcha';

步骤2:阅读模板参考

@ViewChild('captchaElem') captchaElem: ReCaptcha2Component;

步骤3:读取要重置/重新加载的组件

this.captchaElem.resetCaptcha();

您可以使用isCaptcaSuccess之类的布尔值来检查您的验证码是否有效。您可以在handleExpire和handleSuccess事件中设置值。

Ngx验证码

<ngx-recaptcha2 #captchaElem
   [siteKey]="siteKey"
   (reset)="handleReset()"
   (expire)="handleExpire()"
   (error)="handleError()"
   (load)="handleLoad()"
   (success)="handleSuccess($event)" >
</ngx-recaptcha2>