如何捕获ui中的recaptcha响应

时间:2017-03-05 10:10:22

标签: ember.js

我已使用ember-g-recaptcha在我的ember应用中安装了ember install ember-g-recaptcha插件。我能够在UI中看到recaptcha。但是如何检查是否选中了该框。如果未选中,我的表单不应提交,并应显示错误消息。

我想在响应为空时显示此错误消息。我在我的控制器中写了这个:

 onCaptchaExpired() { 
   $("#message").show();
   $("#message").css("color", "red");
   $("#message").html("Recaptcha response cannot be empty.");
 },

1 个答案:

答案 0 :(得分:1)

首先,真的应该依靠ember来管理DOM,而不是使用jQuery手动执行。

一个简单的解决方案可能是在g-recaptcha组件触发操作时切换布尔值:

模板:

{{g-recaptcha onSuccess=(action "onCaptchaResolved") onExpired=(action "onCaptchaExpired")}}
{{captchaError}}

<button disabled={{isInvalid}} />

成分:

Ember.Component.extend({
    isInvalid: true,
    captchaError: null,
    actions: {
        onCaptchaResolved(captchaResult) {
            this.set('isInvalid', false);
        },
        onExpired() {
            this.set('isInvalid', true);
            this.set('captchaError', 'Recaptcha response cannot be empty.')
        }
    }
})

这可以让你知道如何做到这一点。