reCaptcha和Silverstripe

时间:2012-10-16 10:27:54

标签: recaptcha silverstripe

我将Recaptcha实施到Silverstripe,似乎有效。 唯一的问题是,公式和验证码代码位于页面的最末端,如果输入错误的代码,页面会重新加载并跳回到顶部,以便用户看不到公式和验证码了。

如何在输入错误的验证码后使窗口不滚动到顶部?

1 个答案:

答案 0 :(得分:4)

由于HTTP规范不允许包含锚标记的服务器端重定向,因此您需要使用JavaScript来实现此目的。由于该字段在标准SilverStripe表单呈现中使用验证消息突出显示,因此您可以使用它来确定提交的表单再次加载后字段的状态。

jQuery(document).ready(function() {
    var captchaEl = jQuery('#MyCaptcha');
    if(captchaEl.find('.message.required').length) {
        window.scrollTo(0, captchaEl.scrollTop());
    }
});