我在角色项目中使用google的recaptcha,它按预期工作,但我无法弄清楚如何重置它。
我有一个用户发送数据的表单,我希望在表单成功发布后重置表单,以便用户可以发送另一封邮件。
在我的控制器中,我有以下方法:
var resetForm = function () {
//reset my models
//reset my flags
//here I would like to reset the recaptcha
}
如何从角度控制器内的函数执行此操作?
答案 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>